假设我们要将如下数据框,按照日期信息重新塑造,即每个日期作为一行,将每个类别下对应日期的数值填充到相应的列中:
category | date | value |
---|---|---|
A | 2020-01-01 | 10 |
A | 2020-01-02 | 15 |
B | 2020-01-01 | 20 |
B | 2020-01-02 | 25 |
使用pandas中的pivot方法可以实现该功能,代码示例如下:
import pandas as pd
# 创建原始数据框
df = pd.DataFrame({'category': ['A', 'A', 'B', 'B'],
'date': ['2020-01-01', '2020-01-02', '2020-01-01', '2020-01-02'],
'value': [10, 15, 20, 25]})
# 将date列转为日期类型
df['date'] = pd.to_datetime(df['date'])
# 使用pivot方法重新塑造数据框
new_df = df.pivot(index='date', columns='category', values='value')
经过pivot方法处理后,得到的新数据框如下:
date | A | B |
---|---|---|
2020-01-01 | 10 | 20 |
2020-01-02 | 15 | 25 |
其中,新数据框的行索引为日期,列索引为每个不同的category,数值即为原始数据框中对应日期和category下的数值。
上一篇:按照日期索引分组
下一篇:按照日期选择直接前任