7天微课程day2——下载序列数据集

声明:

  1. 本文是系列课程的第二课
  2. 本文是对机器学习网站课程的翻译
  3. 尊重原作者,尊重知识分享

下载序列数据集

要使用的Python第三方库:Pandas

通过本文,你可以学到:

  • 如何使用pandas读取一个csv文件。
  • 如何查看加载的数据,如何计算数据的统计量。
  • 如何可视化时间序列

Daily Female Births Dataset

数据集:Daily Female Births Dataset
这是一个单变量的时间序列,描述了加州1959年每天(共365天)出生的女性人数。数据集如下所示:

"Date","Daily total female births in California, 1959"
"1959-01-01",35
"1959-01-02",32
"1959-01-03",30
"1959-01-04",31
"1959-01-05",44

该时间序列的折线图如下所示:

7天微课程day2——下载序列数据集_第1张图片

加载时间序列

pandas中用Series加载和保存序列。

# Load birth data
from pandas import Series
series = Series.from_csv('daily-total-female-births-in-cal.csv', header=0)
print(series.head())

运行结果是显示序列前5行的信息:

Date
1959-01-01 35
1959-01-02 32
1959-01-03 30
1959-01-04 31
1959-01-05 44
Name: Daily total female births in California, 1959, dtype: int64

series表示时间序列,即一列数据,它的名字就是列名,在本例中是Date。但它似乎不止一列数据,在每一行的前一个数据是日期和时间,实际上是series的索引。

pandas中的另一个类——DataFrame可以加载和处理列表。
DataFrameSeries不同之处在于其一个索引可以有多个列的值。Series可以看做是列表的特例——单列数据。

import pandas as pd
series = pd.read_csv('daily-total-female-births-in-cal.csv', header=0, parse_dates=[0], index_col=0, squeeze=True)
print(type(df))
print(series.head())

read_csv()中参数的意义:

  • header=0: 文件第一行作为列名
  • parse_dates=[0]: 解析第一列的日期,将其转化成标准时间类型
    index_col=0: 文件的第一列作为索引
    squeeze=True: 若读取后的文件只有一列,则转化为series;否则转化为dataframe.

另一个在实践中可能会用到的参数是date_parser,用于传入处理日期字符串。如果不调用的话则默认用pd.to_datetime()

该代码的输出与之前的例子输出相同:

<class 'pandas.core.series.Series'>
Date
1959-01-01 35
1959-01-02 32
1959-01-03 30
1959-01-04 31
1959-01-05 44
Name: Daily total female births in California, 1959, dtype: int64

一般来说,用dataframe来处理数据比series更容易,它们之间的转化很简单:dataframe = DataFrame(series)

更多关于read_csv的介绍:

  • Series.from_csv()
  • pandas.read_csv()

查看时间序列

如前所述,可以用head()查看dataframeseries前n(默认为5)行的值。

还有一些好用的查看数据的方法(以series为例,dataframe同用:

  • series.size: 查看数据量
  • series[‘1959-01’]: 查看1959年1月的数据
  • series.describe(): 查看7个统计量,分别是:平均值、标准差、最小值、下分位点、中分位点、上分位点和最大值。

作图

from pandas import Series
from matplotlib import pyplot
series = Series.from_csv('daily-total-female-births-in-cal.csv', header=0)
pyplot.plot(series)
pyplot.show()

7天微课程day2——下载序列数据集_第2张图片

更多关于pandas中的绘图函数可见我的另一篇博客:
pandas中的绘图函数

你可能感兴趣的:(7天微课堂——时间序列)