Как построить временной ряд с несколькими странами? - PullRequest
1 голос
/ 14 июля 2020

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

#combine dataframe

test = soccer_data_2.append(soccer_data_3)

test = test.sort_values(by = 'date')

test = pd.DataFrame(test, columns = ['date', 'Country', 'Result'])

#converte date format to only have year

test['date'] = pd.to_datetime(test['date'])

test['year'] = test['date'].dt.year 

#group my result

test.set_index('year', inplace=True)
test = test.groupby(['year', 'Country', 'Result']).Result.count()

print(test) 

year  Country        Result
1873  England        Win       1
      Scotland       Win       1
1874  England        Win       1
      Scotland       Win       1
1876  England        Win       1
                              ..
2019  Yorkshire      Win       2
      Zambia         Win       5
      Zimbabwe       Win       7
2020  Costa Rica     Win       1
      United States  Win       1

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

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Преобразуйте все столбцы даты в объекты datetime, затем импортируйте matplotlib с помощью

import matplotlib.pyplot as plt 

, затем для построения данных:

    test = df.groupby(['year', 'Country', 'Result'])
    for groups, data in test :
        plt.plot(data['Year'], data['<the column that you would like to plot>']
1 голос
/ 14 июля 2020

Попробуйте следующее:

plt.figure(figsize=(10,10))
countries=df.Country.unique()
for country in countries:
    grouped=df[df.Country==country].groupby('year').count()
    years=list(grouped.index)
    wins=list(grouped.Result)
    plt.plot(years,wins,label=country)
plt.legend()
...