如何在pandas中利用时间序列

如何在pandas中利用时间序列

在均匀间隔的时间段内,一个变量的有序数值流被称为时间序列。时间序列在识别导致观察到的数据的基本因素和结构方面很有用,在你拟合了一个模型之后,就可以转向预测、监测。时间序列的一些应用是分析股票市场、估计收益率、研究疾病的传播,如covid19等等。我们可以根据某些条件使用时间序列来处理特定的数据。在这篇文章中,让我们来演示如何使用时间序列数据。

点击这里查看和下载数据集。

在Pandas中利用时间序列

所有的例子都是在covid_19数据上进行的。在导入CSV文件后,使用pd.to_datetime()方法将 “观察日期 “和 “最后更新 “日期转换为数据时间。

# import packages
import pandas as pd
  
# read csv file
df = pd.read_csv('covid_19.csv', encoding='UTF-8')
  
df['ObservationDate'] = pd.to_datetime(df['ObservationDate'])
df['Last Update'] = pd.to_datetime(df['Last Update'])
print(df)

输出:

如何在pandas中利用时间序列?

提取2021年之前的所有观测值。检索到192466条记录。

df[df['ObservationDate']<='2021']

输出:

如何在pandas中利用时间序列?

检索某一天的观察结果。在这个例子中,我们把这一天设置为’2020-06’。

df[df['ObservationDate'] == '2020-06']

输出:

如何在pandas中利用时间序列?

检索死亡人数最多的一天。根据我们的数据,2021年5月29日,英国的死亡人数最多。

df[df['Deaths'] == max(df['Deaths'])]

输出:

如何在pandas中利用时间序列?

输出

在’2021-05-20’的所有死亡人数之和。

sum(df[df['ObservationDate'] == '2021-05-20']['Deaths'])

输出:

3430539.0

我们可以将时间序列列设置为数据时间,并将其设置为数据框架的索引,以方便检索我们需要的信息,而不是在艰苦的工作中检索数据。在这个例子中,ObservationDate被设置为数据框架的索引。通过使用df.loc(),我们可以通过日期直接索引和访问所需的信息。df.loc[‘2020-01’]检索到该日期的所有数据。输出显示有513个观察值。

# import packages
import pandas as pd
  
# read csv file
df = pd.read_csv('covid_19.csv')
df['ObservationDate'] = pd.to_datetime(df['ObservationDate'])
df['Last Update'] = pd.to_datetime(df['Last Update'])
df = df.set_index('ObservationDate')
print(df.loc['2020-01'])

输出:

如何在pandas中利用时间序列?

使用索引检索了2021年5月20日至5月21日的观测数据。

# import packages
import pandas as pd
  
# read csv file
df = pd.read_csv('covid_19.csv')
df['ObservationDate'] = pd.to_datetime(df['ObservationDate'])
df['Last Update'] = pd.to_datetime(df['Last Update'])
df = df.set_index('ObservationDate')
  
# observations taken from may 20th to may 21st of 2021
df.loc['2021-05-20':'2021-05-21']

输出:

如何在pandas中利用时间序列?

在这个例子中,df.groupby()被用来根据更新日期对所有观测值进行分组,并对它们进行计数。例如,第一行说有40个观测值在’2020-01-22’。

# import packages
import pandas as pd
  
# read csv file
df = pd.read_csv('covid_19.csv')
df['ObservationDate'] = pd.to_datetime(df['ObservationDate'])
df['Last Update'] = pd.to_datetime(df['Last Update'])
df = df.set_index('ObservationDate')
print(df.groupby(level=0).count())

输出:

如何在pandas中利用时间序列?

在将数据框架的索引设置为时间序列后,我们使用df.plot.line()方法,通过一个单线图将所有信息可视化。时间序列数据有助于我们做出好的结论。

# import packages and libraries
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np
  
# reading the dataset
df = pd.read_csv('covid_19_data.csv', encoding='UTF-8')
  
# convert Last update column to datetime
df['Last Update'] = pd.to_datetime(df['Last Update'])
  
# setting index
df.set_index('Last Update', inplace=True)
  
# plotting figure
df.plot.line()

输出:

如何在pandas中利用时间序列?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程