python - Pandas : "distribute"列值到多行

标签 python pandas

我是 Pandas 新手,正在尝试解决以下问题。

我有一个大的 DataFrame (10000 x 28),如下所示。

Col1 Col2 Col3 Col4 Col5
  A    B   C    D    E

如何将其 reshape 为如下所示?

Col1 Col2 NewColName
  A    B    C
  A    B    D
  A    B    E

前两列保持不变,最后三列“分布”在它们之上。

我的目标是把一个大的DataFrame 变成“整齐的数据”

我尝试过 concat、stack 等方法,但我觉得我缺少一些优雅的方法来解决这个问题。

最佳答案

['Col1, 'Col2] 设置为 index 并使用 .stack()

df.set_index(['Col1', 'Col2']).stack()

Col1  Col2   
A     B     0    C
            0    D
            0    E

然后执行 .reset_index() 以按照您的示例进行格式化(您还可以添加 name='Col' 以获得与@jezrael 建议的相同结果:

df.reset_index(-1, drop=True).reset_index(name='Col')

  Col1 Col2  0
0    A    B  C
1    A    B  D
2    A    B  E

关于python - Pandas : "distribute"列值到多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36988859/

相关文章:

python - Graphene 中提供的 GraphQLError() 有多大用处?

python - 查找 NumPy 数组中大于 N 的值的开始/停止索引范围

python - MySQL "Warning: Data truncated for column"仅出现在某些行上,即使它们与其他行的长度相同?

python - Nose 中的 setup_module 和 setup_func

python - matplotlib 仅绘制日期而不是给定的日期时间变量

python - 如何使用 pandas 查找内存泄漏

python - 在同一列上多次调用 Pandas df.sort_values() 会产生不同的结果?

python - 操作系统错误 : dlopen() failed to load a library: cairo/cairo-2/cairo-gobject-2

python - 按 Pandas 数据框列的相同部分字符串分组

Python Pandas 将日期和时间组合成一列