Python Pandas: как независимо сдвигать содержимое строки в каждой строке, чтобы получить диаграмму Covid из сотого случая - PullRequest
1 голос
/ 22 марта 2020

Это мой первый вопрос о переполнении стека, и я интенсивно искал подобные вопросы и ответы безуспешно.

Я работаю с набором данных Covid и пытаюсь создать диаграмму без временная шкала даты, но с количеством дней, прошедших с сотого случая, аналогично этому

. Для этого я ищу код, позволяющий переместить содержимое строки в столбец (и) ) с 0 для каждой строки: illustration

Проблема: Я думал об использовании DropNa здесь, но он будет удалять столбцы, где другие строки будут иметь фактическое число ... Есть предложения?

Заранее большое спасибо

1 Ответ

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

Давайте попробуем что-то вроде этого:

df_confirmed = pd.read_csv('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv')
df_con = df_confirmed.set_index(['Country/Region', 'Province/State']).drop(['Lat', 'Long'], axis=1)
df_con.mask((df_con == 0).cumprod(axis=1).astype(bool)).apply(lambda x: pd.Series(x.dropna().to_numpy()), axis=1)

Вывод (печатающая головка (5) результата):

                                0    1    2    3    4    5     6     7     8   \
Country/Region Province/State                                                   
Thailand       NaN             2.0  3.0  5.0  7.0  8.0  8.0  14.0  14.0  14.0   
Japan          NaN             2.0  1.0  2.0  2.0  4.0  4.0   7.0   7.0  11.0   
Singapore      NaN             1.0  3.0  3.0  4.0  5.0  7.0   7.0  10.0  13.0   
Nepal          NaN             1.0  1.0  1.0  1.0  1.0  1.0   1.0   1.0   1.0   
Malaysia       NaN             3.0  4.0  4.0  4.0  7.0  8.0   8.0   8.0   8.0   

                                 9   ...     50     51     52     53     54  \
Country/Region Province/State        ...                                      
Thailand       NaN             19.0  ...   70.0   75.0   82.0  114.0  147.0   
Japan          NaN             15.0  ...  639.0  701.0  773.0  839.0  825.0   
Singapore      NaN             16.0  ...  200.0  212.0  226.0  243.0  266.0   
Nepal          NaN              1.0  ...    1.0    1.0    1.0    1.0    1.0   
Malaysia       NaN              8.0  ...  428.0  566.0  673.0  790.0  900.0   

                                   55      56     57     58      59  
Country/Region Province/State                                        
Thailand       NaN              177.0   212.0  272.0  322.0   411.0  
Japan          NaN              878.0   889.0  924.0  963.0  1007.0  
Singapore      NaN              313.0   345.0  385.0  432.0     NaN  
Nepal          NaN                1.0     1.0    NaN    NaN     NaN  
Malaysia       NaN             1030.0  1183.0    NaN    NaN     NaN  

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