Как группировать столбцы pandas - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь сгруппировать столбец в pandas фрейме данных!

Код:

import pandas as pd

stats_reader = pd.read_csv('C:/Users/Name/PycharmProjects/Corona Stats/TimeSeries/03-20-2020.csv')
stats_clean = stats_reader.drop(['Province/State', 'Last Update', 'Latitude', 'Longitude'], axis=1)
stats_clean.reset_index(drop=True, inplace=True)
stats_clean.groupby(['Country/Region'])
stats_clean.to_csv('Clean Corona Stats.csv')

Результат:

,Country/Region,Confirmed,Deaths,Recovered
0,China,67800,3133,58382
1,Italy,47021,4032,4440
2,Spain,20410,1043,1588
3,Germany,19848,67,180
4,Iran,19644,1433,6745
5,France,12612,450,12
6,"Korea, South",8652,94,1540
7,US,8310,42,0
8,Switzerland,5294,54,15
9,United Kingdom,3983,177,65
10,Netherlands,2994,106,2
11,Austria,2388,6,9
12,Belgium,2257,37,1
13,Norway,1914,7,1
14,Sweden,1639,16,16
15,US,1524,83,0
...

Требуемый результат очевидно, чтобы сгруппировать столбцы по стране / региону. Я бы предположил, что он соберет воедино только все строки одного и того же значения, но этот кадр данных останется неизменным с этим кодом.

Я пробовал:

stats_clean.groupby(['Country/Region'])['Confirmed'].sum()

, который также не вызывает изменений в исходном фрейме данных. Что мне здесь не хватает? Я чувствую, что это должно хоть что-то сделать, но НЕТ никаких изменений независимо от того, что я делаю, кроме удаления столбцов. Я запустил все в jupyter только для того, чтобы убедиться, что pycharm не сломан, но я получаю те же результаты.

1 Ответ

0 голосов
/ 23 марта 2020

Понятия не имею, в чем ваша проблема, моя точная копия (с небольшими изменениями в вашем образце для чтения) делает именно то, для чего предназначена groupby().

Образец для копирования / вставки (единственный здесь я удалил кавычки и запятую из «Южная Корея»):

,Country/Region,Confirmed,Deaths,Recovered
0,China,67800,3133,58382
1,Italy,47021,4032,4440
2,Spain,20410,1043,1588
3,Germany,19848,67,180
4,Iran,19644,1433,6745
5,France,12612,450,12
6,Korea South,8652,94,1540
7,US,8310,42,0
8,Switzerland,5294,54,15
9,United Kingdom,3983,177,65
10,Netherlands,2994,106,2
11,Austria,2388,6,9
12,Belgium,2257,37,1
13,Norway,1914,7,1
14,Sweden,1639,16,16
15,US,1524,83,0
import pandas 

# copy above sample
df = pd.read_clipboard(sep=',', index_col=0)
df1 = df.groupby(['Country/Region'])['Confirmed'].sum()

print(df1)

Country/Region
Austria            2388
Belgium            2257
China             67800
France            12612
Germany           19848
Iran              19644
Italy             47021
Korea South        8652
Netherlands        2994
Norway             1914
Spain             20410
Sweden             1639
Switzerland        5294
US                 9834
United Kingdom     3983
Name: Confirmed, dtype: int64

Так как US - единственный, который появляется дважды в этом примере, он * Столбец 1010 * будет агрегирован с .sum(), остальные группы (Country/Region s) останутся прежними.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...