我有一个这样的数据框,
df:
col1 col2 col3
1 cat 4
nan dog nan
3 tiger 3
2 lion 9
nan frog nan
nan elephant nan
我想从此数据帧创建一个数据帧,该ID在col1中存在nan值,col2值将添加到前一行值。
例如,所需的输出数据帧将是:
col1 col2 col3
1 catdog 4
3 tiger 3
2 lionfrogelephant 9
如何使用熊猫做到这一点?
使用向前填充缺失值并进行汇总join
:
cols = ['col1','col3']
df[cols] = df[cols].ffill()
df = df.groupby(cols)['col2'].apply(''.join).reset_index()
print (df)
col1 col3 col2
0 1.0 4.0 catdog
1 2.0 9.0 lionfrogelephant
2 3.0 3.0 tiger
或者,如有必要,向前填充所有列中的缺失值:
df = df.ffill().groupby(['col1','col3'])['col2'].apply(''.join).reset_index()
print (df)
col1 col3 col2
0 1.0 4.0 catdog
1 2.0 9.0 lionfrogelephant
2 3.0 3.0 tiger
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句