gpt4 book ai didi

python - Pandas 尽可能压平行

转载 作者:太空宇宙 更新时间:2023-11-04 04:22:46 25 4
gpt4 key购买 nike

我有一个数据框,它根据每个 ID 的信息量为某些 ID 输出多行,我想尽可能地展平它。下面是我的数据框示例。

id       address         city       state  country  company  title   email
001 80 Fake St. San F. CA USA null null personal@gmail.com
001 null null null null Amazon CEO null
002 2 Test Ave. San F. CA USA null null test@aol.com
002 null null null null Google CEO googleceo@gmail.com

我希望将 001 的行合并为一个,因为所有值都可以放在同一行中。对于 002,将它们放在不同的行中是可以的,因为无论如何都需要两行来存储两封电子邮件。

我试过了

df.groupby('id', squeeze=True) 

这让我接近我想要的,但对于 002,它复制了第一行的所有数据并将其放在第二行。我更希望那些保持为空,这样一旦我收到最终输出,相同的数据就不会被处理两次。所以我想要的最终输出是:

id       address         city       state  country  company  title   email
001 80 Fake St. San F. CA USA Amazon CEO personal@gmail.com
002 2 Test Ave. San F. CA USA null null test@aol.com
002 null null null null Google CEO googleceo@gmail.com

我永远不知道哪些列可以合并/展平,所以我不能删除基于某些列的重复项(我不认为)。关于如何实现此输出的任何建议都会很棒!

最佳答案

我在这里使用 sorted ,因为它更容易阅读

yourdf=df.groupby('id').apply(lambda x : x.apply(lambda y: sorted(y,key=pd.isnull))).dropna(thresh=2) 
yourdf
id address city state country company title email
0 1 80FakeSt. SanF. CA USA Amazon CEO personal@gmail.com
2 2 2TestAve. SaF. CA USA Google CEO test@aol.com
3 2 NaN NaN NaN NaN NaN NaN googleceo@gmail.com

如果你需要速度,检查justify

关于python - Pandas 尽可能压平行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54139102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com