2016-09-29 5 views
0

У меня есть dataframe, где один столбец имеет список zipcodes, а другой имеет значения свойств, соответствующие zipcode. Я хочу суммировать значения свойств в каждой строке в соответствии с соответствующим zipcode.Суммировать значения в столбце с использованием Pandas

Так, например:

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

Я бы затем сложить значения

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

и пожинать общее значение свойства для 2210 как почтового индекса $ 7100.

Любая помощь в этой связи будут оценены

ответ

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.

Также вам нужно удалить знак $ в значениях столбца. Для этого вы можете использовать что-то вдоль линий следующих при чтении dataframe первоначально:

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

Edit: Изменен код согласно комментарии. Чтобы сбросить индекс после использования GroupBy:

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

Затем, чтобы удалить определенный столбец со значением почтового индекса, скажем, 2135, вам нужно

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

Спасибо! У меня есть еще один вопрос. Что делать, если я хочу удалить определенные почтовые индексы и их соответствующие значения (после суммирования всего)? – dancemc15

+0

Вы можете использовать 'df3 = df2 [df2 ['zip']! = Value_not_needed]' где value_not_needed - это почтовый индекс, который вы не хотите –

+0

Извините, я немного смущен. Предположим, я хочу zip 2130, и его стоимость ушла. Как я могу указать это с кодом, который вы написали выше? – dancemc15

Смежные вопросы