gpt4 book ai didi

python - Pandas ,删除重复项但合并某些列

转载 作者:行者123 更新时间:2023-12-05 02:42:51 25 4
gpt4 key购买 nike

我正在寻找一种方法来删除基于特定列子集的重复行,但合并一些数据,因此它不会被删除。

import pandas as pd

# Example Dataframe
data = {
"Parcel": ['001', '002', '003', '003'],
"Res" : ['Henry', 'Nick', 'Paul', 'Bill'],
"Bill" : ['4,100', '2,300', '5,200', '4,000'],
"Year" : ['1995', '1990', '2008', '2008']
}
df = pd.DataFrame.from_dict(data=data)
<表类="s-表"><头>包裹分辨率法案年份<正文>001亨利4,1001995002尼克2,3001990003保罗5,2002008003账单4,0002008

一些伪代码看起来像这样:

df = df.drop_duplicates(subset='Parcel', keep_data=['Res', 'Bill'])
<表类="s-表"><头>包裹分辨率法案年份<正文>001亨利4,1001995002尼克2,3001990003保罗,比尔5,200, 4,0002008

我不确定从哪里开始,但如果有任何关于在哪里查看的提示,我们将不胜感激。

最佳答案

您可以将 .groupby.agg 一起使用:

df = (
df.groupby("Parcel")
.agg({"Res": ", ".join, "Bill": ", ".join, "Year": "first"})
.reset_index()
)
print(df)

打印:

  Parcel         Res          Bill  Year
0 001 Henry 4,100 1995
1 002 Nick 2,300 1990
2 003 Paul, Bill 5,200, 4,000 2008

编辑:如果您有很多列,您可以“首先”聚合所有值,然后更新数据框:

g = df.groupby("Parcel")
x = g.agg("first")
x.update(g.agg({"Res": ", ".join, "Bill": ", ".join}))
print(x.reset_index())

Parcel Res Bill Year
0 001 Henry 4,100 1995
1 002 Nick 2,300 1990
2 003 Paul, Bill 5,200, 4,000 2008

关于python - Pandas ,删除重复项但合并某些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67258042/

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