У меня есть следующий код, который анализирует последние данные COVID19 и находит кумулятивно подтвержденные случаи для выбранных стран, что прекрасно работает.
import pandas as pd
import matplotlib.pyplot as plt
url="https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv"
df=pd.read_csv(url)
print(df.head())
print('Dropping province, latitude and longitude')
df = df.drop(['Province/State', 'Lat', 'Long'], axis = 1)
print(df.head())
print('Selecting the countries of interest')
countries=['Italy','Netherlands']
s1=df.loc[df['Country/Region'].isin(countries)]
print('s1=\n',s1.head())
print('Summing all provinces for the same country')
df_gr = s1.groupby('Country/Region').sum()#.reset_index()
print(df_gr.head())
В конце вышесказанное дает мне в конце:
Summing all provinces for the same country
1/22/20 1/23/20 1/24/20 1/25/20 1/26/20 1/27/20 1/28/20 1/29/20 1/30/20 ... 3/26/20 3/27/20 3/28/20 3/29/20 3/30/20 3/31/20 4/1/20 4/2/20 4/3/20
Country/Region ...
Italy 0 0 0 0 0 0 0 0 0 ... 80589 86498 92472 97689 101739 105792 110574 115242 119827
Netherlands 0 0 0 0 0 0 0 0 0 ... 7468 8647 9819 10930 11817 12667 13696 14788 15821
Теперь я сначала groupby
, а затем isin
, чтобы выбрать данные двух стран и рассчитываю получить тот же результат:
import pandas as pd
import matplotlib.pyplot as plt
url="https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv"
df=pd.read_csv(url)
print(df.head())
print('Dropping province, latitude and longitude')
df = df.drop(['Province/State', 'Lat', 'Long'], axis = 1)
print(df.head())
print('Summing all provinces for the same country')
df_gr = df.groupby('Country/Region').sum()#.reset_index()
print(df.head())
print('Selecting the countries of interest')
countries=['Italy','Netherlands']
s1=df_gr.loc[df_gr['Country/Region'].isin(countries)]
print('s1=\n',s1.head())
Однако я получаю следующую ошибку:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2646, in get_loc
return self._engine.get_loc(key)
File "pandas/_libs/index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'Country/Region'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "dr2.py", line 27, in <module>
s1=df_gr.loc[df_gr['Country/Region'].isin(countries)]
File "/usr/local/lib/python3.7/site-packages/pandas/core/frame.py", line 2800, in __getitem__
indexer = self.columns.get_loc(key)
File "/usr/local/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2648, in get_loc
return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas/_libs/index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'Country/Region'
Любое объяснение или средство правовой защиты?