在python中汇总数据框中的列

问题描述 投票:-1回答:2

我试图添加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.如何正确添加这些列?

python dataframe sum calculated-columns
2个回答
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)仅在您的数据框只有三个相关列时有效,因为它对所有列进行求和(而不仅仅是您想要的三个列)。


1
投票

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

    df['Total Medal'] = df.sum(axis=1)
© www.soinside.com 2019 - 2024. All rights reserved.