【发布时间】:2021-05-12 06:26:35
【问题描述】:
在 pandas 中,我无法从长格式转换为宽格式。从宽到长的例子很多,但我没有找到一个从长到宽的例子。 我正在尝试重新格式化我的数据框,pivot、groupby、unstack 对我的用例来说有点混乱。
这就是现在的样子
我尝试构建基于肽、电荷和蛋白质的 MultiIndex。然后我尝试基于该多索引进行旋转,并将所有样本及其强度保留为值:
df.set_index(['Peptide', 'Charge', 'Protein'], append=False)
df.pivot(index=df.index, columns='Sample', values='Intensity')
当然,这不起作用,因为我的索引现在是 3 的组合,而不是数据框中的实际列。
它告诉我
KeyError: None of [RangeIndex(start=0, stop=3397898, step=1)] are in the [columns]
我也尝试过分组,但我不确定如何从长格式移回宽格式。我对数据框的思维方式很陌生,我想学习如何正确地做到这一点。 我很想用 4 个 for 循环来做一个老式的类似“java”的方法,并将其构建为一个矩阵。提前谢谢你!
【问题讨论】:
-
使用示例输入数据作为文本更新您的问题,它几乎是标记。也适用于所需的布局。图片/图片不能用于演示如何解决您的问题
-
考虑将您的数据粘贴为文本,而不是截屏。
标签: python pandas dataframe pivot