我有一个数据框,其中一列有一个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。
在这方面的任何帮助将不胜感激
答案 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]