如何在熊猫中合并重复的行,填充缺失值?
在下面的示例中,某些行在c1
列中缺少值,但是c2
列中的重复项可以用作索引来查找和填写这些缺失值。 / p>
输入数据如下:
c1 c2
id
0 10.0 a
1 NaN b
2 30.0 c
3 10.0 a
4 20.0 b
5 NaN c
所需的输出:
c1 c2
0 10 a
1 20 b
2 30 c
但是怎么做?
以下是生成示例数据的代码:
import pandas as pd
df = pd.DataFrame({
'c1': [10, float('nan'), 30, 10, 20, float('nan')]
'c2': [100, 200, 300, 100, 200, 300],
})
答案 0 :(得分:1)
我认为需要sort_values
和drop_duplicates
:
df = df.sort_values(['c1','c2']).drop_duplicates(['c2'])
print (df)
c1 c2
0 10.0 100
4 20.0 200
2 30.0 300
或者首先删除dropna
内有NaN
的行:
df = df.dropna(subset=['c1']).drop_duplicates(['c2'])
print (df)
c1 c2
0 10.0 100
2 30.0 300
4 20.0 200
df = df.dropna(subset=['c1']).drop_duplicates(['c1','c2'])
print (df)
c1 c2
0 10.0 100
2 30.0 300
4 20.0 200