如何处理时间序列数据?
import pandas as pd
import matplotlib.pyplot as plt
air_quality = pd.read_csv("data/air_quality_no2_long.csv")
air_quality = air_quality.rename(columns={
"date.utc": "datetime"})
air_quality.head()
city | country | datetime | location | parameter | value | unit | |
---|---|---|---|---|---|---|---|
0 | Paris | FR | 2019-06-21 00:00:00+00:00 | FR04014 | no2 | 20.0 | µg/m³ |
1 | Paris | FR | 2019-06-20 23:00:00+00:00 | FR04014 | no2 | 21.8 | µg/m³ |
2 | Paris | FR | 2019-06-20 22:00:00+00:00 | FR04014 | no2 | 26.5 | µg/m³ |
3 | Paris | FR | 2019-06-20 21:00:00+00:00 | FR04014 | no2 | 24.9 | µg/m³ |
4 | Paris | FR | 2019-06-20 20:00:00+00:00 | FR04014 | no2 | 21.4 | µg/m³ |
air_quality.city.unique()
array(['Paris', 'Antwerpen', 'London'], dtype=object)
使用pandas的datetime类型
1、我想把datetime列从文本转换成datetime类型
air_quality["datetime"] = pd.to_datetime(air_quality["datetime"])
air_quality["datetime"]
0 2019-06-21 00:00:00+00:00
1 2019-06-20 23:00:00+00:00
2 2019-06-20 22:00:00+00:00
3 2019-06-20 21:00:00+00:00
4 2019-06-20 20:00:00+00:00
...
3442 2019-04-09 06:00:00+00:00
3443 2019-04-09 05:00:00+00:00
3444 2019-04-09 04:00:00+00:00
3445 2019-04-09 03:00:00+00:00
3446 2019-04-09 02:00:00+00:00
Name: datetime, Length: 3447, dtype: datetime64[ns, UTC]
datetime列的初始值是字符串,不支持任何datetime操作(例如,提取年份、星期等等)。通过应用to_datetime函数,pandas将解析字符串并将其转换为datetime(例如datetime64[ns, UTC])对象。在pandas中,我们称其datetime类型(由panda.Timestamp对象定义),它类似于python标准库中的datetime.datetime对象。
由于很多数据集将日期时间信息包含在其中一列中,因此pandas输入函数,例如.read_csv()在读取数据时,可以使用parse_dates参数将列的列表作为Timestamp对象读取到日期列。Timestamp对象非常有用,它有很多有用的特性。
1.1、时间序列数据中的起始和终止日期
air_quality["dateti