汇总python中的数据框中的列

时间:2018-08-30 08:43:09

标签: python dataframe sum calculated-columns

我正在尝试添加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”。

这些行之后的“总奖牌”列以类型“ float”(而不是int)出现,并且仅产生值0。如何正确添加这些列?

2 个答案:

答案 0 :(得分:1)

只需将3列的值添加到新列中

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

答案 1 :(得分:0)

例如使用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)仅在您的数据框仅包含三个相关列时才有效,因为它对所有列求和(而不仅对您想要的三个列进行求和)。