如何合并熊猫中的重复行?
Posted
技术标签:
【中文标题】如何合并熊猫中的重复行?【英文标题】:How to combine duplicate rows in pandas? 【发布时间】:2018-12-20 12:25:54 【问题描述】:pandas中如何合并重复行,填补缺失值?
在下面的示例中,c1
列中的某些行有缺失值,但 c2
列有重复项,可用作查找和填充这些缺失值的索引。
输入数据如下所示:
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],
)
【问题讨论】:
【参考方案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
或者先删除NaN
s by dropna
的行:
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
【讨论】:
以上是关于如何合并熊猫中的重复行?的主要内容,如果未能解决你的问题,请参考以下文章