Python Pandas итоги и даты - PullRequest
       3

Python Pandas итоги и даты

0 голосов
/ 22 апреля 2020

Извините, что не публикую данные, но это не очень поможет. Дело в том, что нужно составить график, и у меня есть CSV-файл, полный информации, упорядоченной по дате. Он имеет «Случаи», «Смертельные случаи», «Восстановление», «Критические», «Госпитализированные», «Состояния» в качестве категорий. Он упорядочен по дате и содержит количество случаев, смертей, восстановлений за день в каждом штате. Как мне суммировать эти категории, чтобы построить график, показывающий, как общее количество увеличивается? Я действительно не знаю, с чего начать, поэтому я не могу опубликовать свои данные. Ниже приведены цифры, которые пытаются объяснить, что у меня есть.

0    2020-02-20        1   Andalucía     NaN             NaN    NaN   
1    2020-02-20        2      Aragón     NaN             NaN    NaN   
2    2020-02-20        3    Asturias     NaN             NaN    NaN   
3    2020-02-20        4    Baleares     1.0             NaN    NaN   
4    2020-02-20        5    Canarias     1.0             NaN    NaN   
..          ...      ...         ...     ...             ...    ...   
888  2020-04-06       19     Melilla    92.0            40.0    3.0   
889  2020-04-06       14      Murcia  1283.0           500.0   84.0   
890  2020-04-06       15     Navarra  3355.0          1488.0  124.0   
891  2020-04-06       16  País Vasco  9021.0          4856.0  417.0   
892  2020-04-06       17    La Rioja  2846.0           918.0   66.0

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Я думаю, что вы ищете groupby с последующей суммой, не включающей даты.

columns_to_group = ['Cases', 'Deaths', 
                  'Recoveries', 'Critical', 'Hospitalized', 'date']
new_columns = ['Cases_sum', 'Deaths_sum', 
               'Recoveries_sum', 'Critical_sum', 'Hospitalized_sum']

df_grouped = df[columns_to_group].groupby('date').sum().reset_index()

Для построения морского волка предусмотрены простые функции:

import seaborn as sns

df_melted = df_grouped.melt(id_vars=["date"])
sns.lineplot(data=df_melted, x='date', y = 'value', hue='variable')
0 голосов
/ 22 апреля 2020

Непонятно, что именно вы подразумеваете под «суммированием этих категорий». Я предполагаю, что вы имеете в виду, что для каждой даты вы хотите суммировать значения во всех разных регионах, чтобы получить итоговые значения для Испании?

В этом случае вам понадобится groupby дата, затем .sum() столбцы (вы можете удалить категорию States.

grouped_df = df.groupby("date")["Cases", "Deaths", ...].sum()
grouped_df.set_index("date").plot()

Этот фрагмент, вероятно, не будет работать напрямую, возможно, вам придется переформатировать даты и т.д. c. Но этого должно быть достаточно для начать.

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