python一列时间序列数据,得到它的前一天(d-1 天)、前两天(d-2 天)、前三天(d-3 天),上周的同一天(d-7)及其相邻两天(d-6 天与 d-8 天),分别将其作为列
时间: 2024-09-16 17:05:33 浏览: 39
在Python中处理时间序列数据并生成特定日期的行通常是通过Pandas库完成的。假设你有一个名为`df`的数据框,其中包含一列名为`datetime_column`的时间序列数据,你可以按照以下步骤操作:
```python
import pandas as pd
# 假设df是一个DataFrame,datetime_column是日期列
df = pd.DataFrame({
'datetime_column': ['2023-01-01', '2023-01-02', ..., '2023-01-31']
})
# 将日期转换为pandas的日期时间格式
df['datetime_column'] = pd.to_datetime(df['datetime_column'])
# 定义函数来获取指定天数之前的日期
def get_dates_before(date, offset):
return date - pd.DateOffset(days=offset)
# 生成所需的日期列
d_minus_1 = df['datetime_column'].apply(get_dates_before, args=(1,))
d_minus_2 = df['datetime_column'].apply(get_dates_before, args=(2,))
d_minus_3 = df['datetime_column'].apply(get_dates_before, args=(3,))
d_minus_7 = df['datetime_column'].apply(get_dates_before, args=(7,))
d_minus_6_and_8 = [get_dates_before(date, i) for date in df['datetime_column'] for i in (-6, -8)]
# 添加新列到DataFrame
df['d_minus_1'] = d_minus_1
df['d_minus_2'] = d_minus_2
df['d_minus_3'] = d_minus_3
df['d_minus_7'] = d_minus_7
df[['d_minus_6', 'd_minus_8']] = pd.DataFrame(d_minus_6_and_8, index=df.index)
# 显示结果数据框
df
```
阅读全文