如何将汽车销量DataFrame转换为时间序列建模格式并生成日期列?
处理月度红色汽车销量数据的时间序列格式转换
假设你的原始DataFrame是年份作为行索引,月份作为列名的结构(比如行是2020、2021,列是1月、2月...),可以按以下步骤转换为适合时间序列建模的格式:
1. 重置索引,把年份转为单独列
如果年份是DataFrame的索引,先把它转成普通列,方便后续合并日期:
import pandas as pd # 假设原数据存放在df里 df = df.reset_index().rename(columns={'index': '年份'})
2. 重塑数据,把月份列转为行记录
用melt方法把宽表转成窄表,每一行对应一个月的销量:
# 重塑后会生成三列:年份、月份、销量 melted_df = df.melt(id_vars='年份', var_name='月份', value_name='红色汽车销量')
3. 合并年份和月份,生成标准日期列
先把中文月份转成数字格式,再和年份拼接成日期字符串,最后转成datetime类型:
# 中文月份转数字的映射字典 month_map = {'1月': '01', '2月': '02', '3月': '03', '4月': '04', '5月': '05', '6月': '06', '7月': '07', '8月': '08', '9月': '09', '10月': '10', '11月': '11', '12月': '12'} # 替换月份为数字格式 melted_df['月份'] = melted_df['月份'].map(month_map) # 拼接成年-月的字符串,再转成日期类型 melted_df['日期'] = pd.to_datetime(melted_df['年份'].astype(str) + '-' + melted_df['月份'])
4. 整理成最终的时间序列格式
保留日期和销量列,按日期排序:
final_df = melted_df[['日期', '红色汽车销量']].sort_values('日期').reset_index(drop=True)
最终的final_df就是每行对应一个月度日期+销量的格式,直接可以用于时间序列建模。
内容的提问来源于stack exchange,提问作者NIVEA
相关产品推荐
相关产品推荐

