过滤数据框并根据给定条件添加新列

没有人 :

我有一个这样的数据框

ID      col1           col2 
1    Abc street       2017-07-27 
1    None             2017-08-17 
1    Def street       2018-07-15 
1    None             2018-08-13 
2    fbg street       2018-01-07 
2    None             2018-08-12 
2    trf street       2019-01-15 

我想过滤col1中的所有“无”并将相应的col2值添加到新列col3中。我的输出看起来像这样

ID      col1           col2              col3 
1    Abc street       2017-07-27     2017-08-17          
1    Def street       2018-07-15     2018-08-13             
2    fbg street       2018-01-07     2018-08-12             
2    trf street       2019-01-15     

谁能帮助我实现这一目标。

盗版:

今日版本的Over Engineered with Numpy

虽然公认很少有明显的Numpy

i, rows = pd.factorize([*zip(df.ID, df.col1.replace('None'))])
k, cols = pd.factorize(df.groupby(i).cumcount())

dleft = pd.DataFrame(dict(zip(['ID', 'col1'], zip(*rows))))
drigt = pd.DataFrame(index=dleft.index, columns=np.arange(len(cols)) + 2).add_prefix('col')
drigt.values[i, k] = df.col2.values

dleft.join(drigt)

   ID        col1        col2        col3
0   1  Abc street  2017-07-27  2017-08-17
1   1  Def street  2018-07-15  2018-08-13
2   2  fbg street  2018-01-07  2018-08-12
3   2  trf street  2019-01-15         NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据给定条件向现有数据框列添加新列

根据给定条件向现有数据框添加多个新列

数据框 - 根据条件创建新列

根据数据框的子集添加新列

根据条件在熊猫数据框中添加新列,并替换不同列中的Nan值

熊猫:比较数据框的列并根据条件添加新的列和值

根据 R 中其他两列的几个条件向数据框添加新列

如何根据另一列中满足的条件在熊猫数据框中添加新列?

根据同一数据框中另一列内容的条件,在数据框中添加新列

根据条件根据列的总和值创建新的数据框

根据R中的条件向数据框添加多个新列

根据条件将元素从列表添加到新的数据框列

如何根据条件向熊猫数据框中的新列添加级别?

根据条件在熊猫数据框中添加新行

根据熊猫中的多个条件添加新的数据框

根据条件从另一个数据框的值向数据框添加新列

根据多列条件过滤熊猫数据框行

根据列中的值是整数(整数)的条件过滤数据框

根据另一列的条件过滤数据框

根据给定条件从数据框中过滤特定数据点

根据数据框中的条件过滤数据

转换数据框,以便根据条件填充新列

根据数据框中的条件填充新列

根据条件在数据框中创建新列

如何根据条件在数据框中创建新列

如何根据条件在熊猫数据框中创建新列?

根据条件将列添加到数据框

根据条件从其他数据框中添加列

根据条件将列添加到pyspark数据框