📜  pd 结合日期时间 - Python (1)

📅  最后修改于: 2023-12-03 15:33:25.950000             🧑  作者: Mango

使用 Pandas 处理日期时间 - Python

在 Python 中,使用 Pandas 库可以方便地处理和操作日期时间数据。

导入 Pandas 和日期时间库

首先,需要导入 Pandas 和 Python 自带的日期时间库 datetime

import pandas as pd
from datetime import datetime
创建时间序列

Pandas 中的 DatetimeIndex 可以方便地表示时间序列,可以通过多种方式创建时间序列。

从字符串创建时间序列

可以使用 pd.to_datetime() 函数从字符串创建时间序列:

dates = pd.to_datetime(['2021-10-01', '2021-10-02', '2021-10-03'])
datetime 对象创建时间序列

可以使用 pd.DatetimeIndex() 函数从 datetime 对象创建时间序列:

dates = pd.DatetimeIndex([datetime(2021, 10, 1), datetime(2021, 10, 2), datetime(2021, 10, 3)])
创建固定频率时间序列

可以使用 pd.date_range() 函数创建固定频率的时间序列,如每天、每周、每月等:

daily_dates = pd.date_range(start='2021-10-01', end='2021-10-31', freq='D')
weekly_dates = pd.date_range(start='2021-10-01', end='2021-12-31', freq='W')
monthly_dates = pd.date_range(start='2021-01-01', end='2021-12-31', freq='M')
时间序列的索引和切片

创建时间序列之后,可以将其作为 Pandas 中的 DataFrame 的索引,也可以像操作普通的 DataFrame 一样进行切片、选择等操作。

data = pd.DataFrame({'value': [1, 2, 3]}, index=dates)

# 索引
print(data.loc['2021-10-01'])

# 切片
print(data.loc['2021-10-01':'2021-10-02'])

# 选择
print(data[data['value'] > 1])
时间序列的聚合

Pandas 中可以对时间序列进行聚合操作,如求和、均值等。

# 以月为单位求和
print(data.resample('M').sum())

# 以周为单位求均值
print(data.resample('W').mean())
时间序列的格式化输出

Pandas 中可以使用 strftime() 方法将时间序列格式化输出为字符串:

# 将时间序列转换为 '%Y-%m-%d' 格式的字符串
print(data.index.strftime('%Y-%m-%d'))

以上就是 Pandas 处理日期时间的基本用法,Pandas 还提供了更多高级的用法,如时区转换、时间差计算等,详见官方文档。