pandas 如何通过操作现有的数据框来创建新的数据框?[已关闭]

ma8fv8wu  于 2022-12-17  发布在  其他
关注(0)|答案(1)|浏览(82)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

5天前关闭。
Improve this question
我有一个数据框架,列中有年份和相应的月份。
我希望转换数据框以在第一列显示YYYY-MM,在第二列显示相应的值。
要转换的数据框:

改造后的理想效果:

nxowjjhe

nxowjjhe1#

您基本上可以通过以下方式实现此目的:

df_melted = df.melt(id_vars=["Year"], value_vars=months, var_name="Month", value_name="CPI")

这将看起来像:

Year Month  CPI
0    1984   Jan 0.48
1    1985   Jan 0.47
2    1986   Jan 0.64
3    1987   Jan 0.52
4    1988   Jan 1.00

从那里你可以很容易地让它看起来像你想要的。例如:

# helpful
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
month_map = dict(zip(months, [i for i in range(1,13)]))

# get it to look like your ideal outcome
df_melted = df_melted.replace({"Month": month_map})
ym = [f"{y}-{m:02d}" for y, m in df_melted[["Year", "Month"]].values]
df_melted.insert(0, "Year-Month", ym)
df_melted.drop(["Year", "Month"], axis=1, inplace=True)

现在它看起来就像你想要的结果。

相关问题