使用Pandas汇总列中的值

时间:2016-09-29 03:45:57

标签: python pandas dataframe sum

我有一个数据框,其中一列有一个zipcodes列表,另一列有与zipcode对应的属性值。我想根据相应的邮政编码总结每行中的属性值。

所以,例如:

zip  value
2210 $5,000
2130 $3,000
2210 $2,100
2345 $1,000

然后我会将值加起来

$5,000 + $2,100  = $7,100 

并获得邮政编码2210的总属性值为$ 7,100。

在这方面的任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

你需要:

df
    zip  value
0  2210   5000
1  2130   3000
2  2210   2100
3  2345   1000

df2 = df.groupby(['zip'])['value'].sum()

df2 
zip    value
2130    3000
2210    7100
2345    1000
Name: value, dtype: int64

您可以详细了解here

此外,您还需要删除列值中的$符号。为此,您可以在最初阅读数据框时使用以下内容:

df = pd.read_csv('zip_value.csv', header=0,names=headers,converters={'value': lambda x: float(x.replace('$',''))})

编辑:根据评论更改了代码。 要在groupby之后重置索引:

df2 = df.groupby(['zip'])['value'].sum().reset_index()

然后要删除具有zip值的特定列,例如2135,您需要

df3 = df2[df2['zip']!= 2135]