📅  最后修改于: 2023-12-03 15:23:56.960000             🧑  作者: Mango
Pandas是一个强大的Python库,用于处理和分析数据。其针对时间序列数据的功能包括对时间序列对象的快速转换和聚合,以及支持基于时间索引的切片、选取和数据过滤等。
在本文中,我们将介绍如何使用Pandas来绘制基于时间序列的图表。
首先,我们需要安装Pandas库。您可以使用以下命令在Anaconda环境中进行安装:
!conda install pandas
或者,如果您是在命令行中使用Python环境,则可以使用以下命令:
pip install pandas
在开始之前,请确保导入必要的库:
import pandas as pd
import matplotlib.pyplot as plt
我们将使用COVID-19数据集作为示例数据。您可以从以下URL中获取数据:https://covid19.who.int/。
在本例中,我们将使用2021年1月1日至2021年6月30日的数据:
url = "https://covid19.who.int/WHO-COVID-19-global-data.csv"
df = pd.read_csv(url, parse_dates=['Date_reported'], index_col=['Date_reported'])
df = df.loc['2021-01-01':'2021-06-30']
print(df.head())
上述代码将打印以下内容:
Country_code Country WHO_region New_cases Cumulative_cases New_deaths Cumulative_deaths
Date_reported
2021-01-01 AF Afghanistan EMRO 63 51526 3 2191
2021-01-02 AF Afghanistan EMRO 87 51613 10 2201
2021-01-03 AF Afghanistan EMRO 102 51715 4 2205
2021-01-04 AF Afghanistan EMRO 113 51828 11 2216
2021-01-05 AF Afghanistan EMRO 63 51891 3 2219
我们将首先绘制全球每日新增病例数的趋势图。
df_world = df.groupby('Date_reported')[['New_cases']].sum()
df_world.plot(figsize=(15,6), title='Daily new cases worldwide', xlabel='Date', ylabel='Number of cases')
plt.show()
上述代码将绘制以下图表:
我们还可以按地区绘制日新增病例数的趋势图。
df_region = df.groupby(['Date_reported', 'WHO_region'])[['New_cases']].sum().unstack()
df_region.plot(figsize=(15,6), title='Daily new cases by WHO region', xlabel='Date', ylabel='Number of cases')
plt.show()
上述代码将绘制以下图表:
我们可以使用Pandas绘制时间序列数据的柱状图。
我们将绘制每个国家的累计确诊病例数的柱状图。
df_country = df.groupby('Country')[['Cumulative_cases']].max().sort_values(by='Cumulative_cases', ascending=False).head(10)
df_country.plot(kind='bar', rot=45, figsize=(15,6), title='Top 10 countries by total cases')
plt.show()
上述代码将绘制以下图表:
使用Pandas,我们可以轻松地处理和可视化时间序列数据。在本文中,我们介绍了如何使用Pandas来绘制基于时间序列的图表,包括折线图和柱状图。如果您想了解更多信息,请查看Pandas的文档:https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html#timeseries-plotting。