如何在pandas中将m×n格式DataFrame转换为k×2格式DataFrame
解决方案
你可以通过以下两种常用方法实现转换:
方法1:concat拼接法(逻辑简单,易调试)
分别提取每组日期+金额字段,重命名为统一列名后拼接即可:
import pandas as pd # 假设你的原DataFrame变量名为df df_part1 = df[["date1", "amt1"]].rename(columns={"date1": "date", "amt1": "amt"}) df_part2 = df[["date2", "amt2"]].rename(columns={"date2": "date", "amt2": "amt"}) res_df = pd.concat([df_part1, df_part2], ignore_index=True)
方法2:wide_to_long法(适配多组日期金额对的场景)
如果你后续还有date3/amt3、date4/amt4这类多组字段,用这个方法不用修改代码,适配性更强:
res_df = pd.wide_to_long( df.reset_index(), stubnames=["date", "amt"], i="index", j="group_num" )[["date", "amt"]].reset_index(drop=True)
内容的提问来源于stack exchange,提问作者user3685918
相关产品推荐
相关产品推荐

