我正在尝试添加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。如何正确添加这些列?
答案 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)
仅在您的数据框仅包含三个相关列时才有效,因为它对所有列求和(而不仅对您想要的三个列进行求和)。