【问题标题】:Flatten a Dataframe that is pivoted展平旋转的数据框
【发布时间】:2023-11-06 05:36:01
【问题描述】:

我有以下代码,它采用单列并将其转为多列。我正在尝试删除结果中的空白,但我遇到了将错误值应用于行的问题。

task_df = task_df.pivot(index=pivot_cols, columns='Field')['Value'].reset_index()
task_df[['Color','Class']] = task_df[['Color','Class']].bfill()
task_df[['Color','Class']] = task_df[['Color','Class']].ffill()
task_df = task_df.drop_duplicates()

开始

当前

想要的

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

这基本上是将所有具有相同名称或 id 的行合并在一起。你可以这样做:

mergers = {'ID': 'first', 'Color': 'sum', 'Class': 'sum'}
task_df = task_df.groupby('Name', as_index=False).aggregate(mergers).reindex(columns=task_df.columns).sort_values(by=['ID'])

【讨论】: