Pandas时间序列
Pandas时间序列
1.字符串转换为时间
pd.to_datetime(列)
如下字符串格式可以转换为时间
- 20240704
- 2024.07.04
- 2024/07/04
- 04/07/2024
- 04-July-2024
import pandas as pd
data = {
'日期': ['2024/07/04', '2024/07/05', '2024/07/06'],
'运动开始时间': ['16:00', '18:30', '19:00'],
'运动结束时间': ['17:00', '19:30', '20:00'],
'运动项目': ['跑步', '游泳', '瑜伽'],
'运动时长(分钟)': [60, 60, 60]
}
df = pd.DataFrame(data)
df["日期"] = pd.to_datetime(df["日期"])
print(df)
![](https://blog.hanstary.com/file/115.png)
2.获得时间
df.index.属性
有如下属性
属性 | 说明 |
---|---|
year | 获得年 |
month | 获得月 |
day | 获得日 |
weekday | 获得星期几,0表示星期一,6表示星期日 |
quarter | 获得季度 |
is_leap_year | 是否为闰年,返回布尔值 |
import pandas as pd
data = {
'日期': ['2024/07/04', '2024/07/05', '2024/07/06'],
'运动开始时间': ['16:00', '18:30', '19:00'],
'运动结束时间': ['17:00', '19:30', '20:00'],
'运动项目': ['跑步', '游泳', '瑜伽'],
'运动时长(分钟)': [60, 60, 60]
}
df = pd.DataFrame(data)
df["日期"] = pd.to_datetime(df["日期"])
df=df.set_index("日期")
print(df.index.day)
![](https://blog.hanstary.com/file/116.png)
3.重采集
df.resample(rule=freq,axis=0或1).统计函数()
freq表示转换频率,有如下值
频率 | 说明 |
---|---|
D | 天 |
M | 月 |
Y | 年 |
Q | 季度 |
W | 星期 |
重采集就基于时间的分组操作
import pandas as pd
data = {
'日期': ['2024/07/04', '2024/07/05', '2024/07/06'],
'运动开始时间': ['16:00', '18:30', '19:00'],
'运动结束时间': ['17:00', '19:30', '20:00'],
'运动项目': ['跑步', '游泳', '瑜伽'],
'运动时长(分钟)': [60, 60, 60]
}
df = pd.DataFrame(data)
df["日期"] = pd.to_datetime(df["日期"])
df = df.set_index("日期")
res = df.resample("1D").count()
print(res)
![](https://blog.hanstary.com/file/117.png)
4.移动计算
df.rolling(n)
n表示每次计算的数量