gpt4 book ai didi

python - 如何在一个 pandas DataFrame 中合并观察结果,其中除了一列外所有列都相同?

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

所以我有这个 pandas DataFrame,有 5 列,大约 100000 行。这是示例:

    V1      V2          V3          V4  V5
0 2014 Alfa Romeo 159 1 157
1 2014 Alfa Romeo GIULIETTA 1 119
2 2014 Alfa Romeo GIULIETTA 3 119

我想做的是对 V4 列中的值求和,如果 V1、V2、V3 和 V5 中的值完全相同。

    V1      V2          V3          V4  V5
0 2014 Alfa Romeo 159 1 157
1 2014 Alfa Romeo GIULIETTA 4 119

起初我以为 groupby 可以完成这项工作,但是当我这样做的时候

df.groupby(['V1', V2','V3', 'V5' ]).sum()

我丢失了 V3 列中的一些信息,例如,我应该有 10 种不同类型的颜色,但现在我只有 3 种。怎么解决?

最佳答案

我怀疑您正在处理“V1”、“V2”、“V3”或“V5”列中的缺失数据,并且这些数据在 groupby 中被遗漏了。看这个SO Post

解决方法是使用 fillna():

df.fillna("Missing").groupby(['V1','V2','V3','V5']).V4.sum()

例子:

打印(df)

       V1          V2         V3  V4   V5
0 2014.0 Alfa Romeo 159 1 157
1 2014.0 Alfa Romeo GIULIETTA 1 119
2 2014.0 Alfa Romeo GIULIETTA 3 119
3 NaN Alfa Romeo Black 4 119

df.groupby(['V1','V2','V3','V5']).V4.sum()

缺少“黑色”:

V1      V2          V3         V5 
2014.0 Alfa Romeo 159 157 1
GIULIETTA 119 4
Name: V4, dtype: int64

使用 fillna():

df.fillna("Missing").groupby(['V1','V2','V3','V5']).V4.sum()

V1 V2 V3 V5
2014.0 Alfa Romeo 159 157 1
GIULIETTA 119 4
Missing Alfa Romeo Black 119 4
Name: V4, dtype: int64

关于python - 如何在一个 pandas DataFrame 中合并观察结果,其中除了一列外所有列都相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47928826/

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