gpt4 book ai didi

python - 将第一个出现的列添加到 groupby 数据框中

转载 作者:行者123 更新时间:2023-12-02 06:08:44 26 4
gpt4 key购买 nike

我有一个像这样的数据框-

df=pd.DataFrame({'DT':[1,1,1,2,2,2,1,1],'city':['A','A','A','A','A','A','B','B'],'O':[22,33,44,55,66,77,88,99]})

现在,对于每个唯一的城市,我想将 O 列中首先出现在 Dt 列中的所有值相加。输出-

   city  O
0 A 77
1 B 88

说明-对于城市“A”,第一个唯一出现的 DT 是 1,因此我们添加相应的 O 列值,即 22。接下来,对于同一城市“A”,DT 列中第一个出现的 2 是第 4 行,因此我们添加其对应的值O柱==22+55=77。同样,对于城市 B,由于 DT 列中只有 1,因此 O 将为 88。

最佳答案

您需要drop_duplicates,然后groupby

df1  = (

df.drop_duplicates(subset=["DT", "city"], keep="first")
.groupby("city")["O"]
.sum()
.reset_index()
)
<小时/>
print(df1)

city O
0 A 77
1 B 88

或者您可以通过先使用 first 然后使用 sum

来使用双组
df.groupby(["city", "DT"]).first().groupby(level=0).sum().reset_index()

city O
0 A 77
1 B 88

关于python - 将第一个出现的列添加到 groupby 数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62066076/

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