繁体   English   中英

合并 Pandas Dataframe 中的行,填充 NaN 值并删除重复项

[英]Merge rows in a Pandas Dataframe filling NaN values and removing duplicates

我正在尝试清理包含带有“重复”(但不完全重复)人员信息的脏数据的 Python Pandas dataframe

id  name    name2   name3   email
1   A       A       A       email@gmail.com
1   A       NaN     NaN     NaN
NaN A       A       B       email@gmail.com
NaN A       A       B       email@gmail.com
1   A       A       B       NaN
NaN A       A       A       email@gmail.com

不幸的是,我没有明确的“主键”,因为列id并不总是设置,而且我有一个不同名称( namename2name3 )的列表,它们并不总是匹配(有时我有相同的name但不同name2 )。 我想保留这两个信息,但删除重复行和“合并”行以删除最大数量的 NaN 值,而不会丢失任何信息之王。

output 应该是:

id  name    name2   name3   email
1   A       A       A       email@gmail.com
1   A       A       B       email@gmail.com

第二行由之间的合并给出

NaN A       A       B       email@gmail.com
1   A       A       B       NaN

在原 dataframe 中。

(我已经在这里尝试过解决方案: 如何合并重复的行并用另一行的值填充 NaN 单元格?但没有成功)

谢谢。

也许这个例子不清楚,但 IIUC、 ffilldrop_duplicates

out = df.ffill().drop_duplicates()

output:

    id name name2 name3            email
0  1.0    A     A     A  email@gmail.com
2  1.0    A     A     B  email@gmail.com

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM