我想添加特定列的值。 我有一个从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
我想把所有的销售额加起来。我试过了:
print sales_df.groupby(["Sales"]).sum()
但它没有增加销售额。我能做些什么来完成这项工作?
答案 0 :(得分:1)
IIUC您需要对Sales
列中的值求和。首先,您需要使用str.replace
删除$
,然后使用pd.to_numeric
转换为数字。然后你可以使用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
版本> = 0.17.0
。如果您使用的是旧版本,请查看convert_object(convert_numeric=True)