Python 在Panda Dataframe的列中添加值
我想把某一列的值相加。 我有一个从CSV加载的数据框,其中包含以下数据:Python 在Panda Dataframe的列中添加值,python,pandas,dataframe,Python,Pandas,Dataframe,我想把某一列的值相加。 我有一个从CSV加载的数据框,其中包含以下数据: Date Item Count Price per Unit Sales 0 1/21/16 Unit A 40 $1.50 $60.00 1 1/22/16 Unit A 20 $1.50 $30.00 2 1/23/16 Unit A 100 $1.50 $150.00 我想把所有的销售额加起来。我试
Date Item Count Price per Unit Sales
0 1/21/16 Unit A 40 $1.50 $60.00
1 1/22/16 Unit A 20 $1.50 $30.00
2 1/23/16 Unit A 100 $1.50 $150.00
我想把所有的销售额加起来。我试过:
print sales_df.groupby(["Sales"]).sum()
但这并不是销售额的总和。我能做些什么来让它工作 IIUC您需要对
Sales
列中的值求和。首先,您需要使用删除$
,然后使用转换为数字。然后您可以使用sum
。一艘班轮:
pd.to_numeric(df.Sales.str.replace("$", "")).sum()
一步一步:
In [35]: df.Sales
Out[35]:
0 $60.00
1 $30.00
2 $150.00
Name: Sales, dtype: object
In [36]: df.Sales.str.replace("$", "")
Out[36]:
0 60.00
1 30.00
2 150.00
Name: Sales, dtype: object
In [37]: pd.to_numeric(df.Sales.str.replace("$", ""))
Out[37]:
0 60
1 30
2 150
Name: Sales, dtype: float64
In [38]: pd.to_numeric(df.Sales.str.replace("$", "")).sum()
Out[38]: 240.0
注:
pd.to_numeric
仅适用于pandas
version>=0.17.0
。如果您使用的是旧版本,请查看convert\u object(convert\u numeric=True)
是否要对销售中的值求和?您的Sales
列有一个数据类型对象,对象(str
)的sum
将被串联。需要求和值才能得到240吗?是的,正确,我希望值为240。我要的是sum而不是concat。太棒了,这很管用。也感谢您的逐步介绍。在您的示例中,列名是硬编码的。我如何重写它使列成为动态的?您也可以使用df['Sales']
或var='Sales'
,df[var]