我想从这个结构中融化我的 pandas 数据框......
...到这个。
我试图融化
df_melted = df.melt(
id_vars=['Name', 'Color year 2020', 'Color year 2019'],
value_vars=['Size year 2020', 'Size year 2019'],
var_name='Year',
value_name='Size')
df_final = df_melted.melt(
id_vars=['Name', 'Year'],
value_vars=['Color year 2020', 'Color year 2019'],
var_name='Year',
value_name='Color')
但这似乎不对......是否可以用一种方式做到这一点?
最佳答案
您可以使用wide_to_long
进行检查
out = pd.wide_to_long(df, ['Color year ','Size year '],
i = 'Name', j ='Year',suffix = '\w+')
out.columns = out.columns.str.split().str[0]
out.reset_index(inplace=True)
out
Out[151]:
Name Year Color Size
0 A 2020 red big
1 B 2020 red big
2 A 2019 red small
3 B 2019 blue medium
关于pandas - 将多列合并为一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73144522/