我试图添加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.如何正确添加这些列?
这可以是例如使用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)
仅在您的数据框只有三个相关列时有效,因为它对所有列进行求和(而不仅仅是您想要的三个列)。
要将3列的值添加到新列,只需执行
df['Total Medal'] = df.sum(axis=1)