在 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)
仅当您的数据框只有三个相关列时才有效,因为它对所有列求和(而不仅仅是您想要的三个列)。
我正在尝试添加 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)
仅当您的数据框只有三个相关列时才有效,因为它对所有列求和(而不仅仅是您想要的三个列)。