在 python 中对数据框中的列求和

Summing columns in dataframe in python

我正在尝试添加 3 列的值以得出一个新列作为总值。代码如下:

    df3[["Bronze","Gold","Silver"]] = 
    df3[["Bronze","Gold","Silver"]].astype("int")
    df3["Total Medal"]= df3.iloc[:, -3:0].sum(axis=1)
    df3[["Total Medal"]].astype("int")

我知道 Bronze、Gold、Silver 列有 1 和 0 值,它们是数据框中的最后 3 列。它们的原始类型是 "uint8" 所以我将它们更改为 "int".

这些行之后的 Total Medal 列显示为类型 "float"(而不是 int)并且仅产生值 0。如何正确添加这些列?

要将 3 列的值添加到新列,只需执行

    df['Total Medal'] = df.sum(axis=1)

这可以例如使用 assign:

完成
import numpy as np
import pandas as pd

#create data frame
data = {"gold":np.random.choice([0,1],size=10),"silver":np.random.choice([0,1],size=10), "bronze":np.random.choice([0,1],size=10)}
df = pd.DataFrame(data)

#calculate new column and add to dataframe
df = df.assign(mysum=df.gold+df.silver+df.bronze)

编辑:df["mysum"] = df.sum(axis=1) 仅当您的数据框只有三个相关列时才有效,因为它对所有列求和(而不仅仅是您想要的三个列)。