【问题标题】:How to split the column into two under same column name and having same values in Python?如何将列拆分为两个具有相同列名并在 Python 中具有相同值的列?
【发布时间】:2019-02-04 23:04:55
【问题描述】:

我正在尝试拆分(内部拆分)一列,以便在同一列名下有两列,并且这两列应该具有相同的值。

我正在尝试使用 Pandas 库在 Python 中实现以下内容

说我的数据框看起来像这样

        Column1  Column2
Row1       1        2
Row2       3        4 

期望的输出:

         Column1  Column2
 Row1     1 | 1    2 | 2
 Row2     3 | 3    4 | 4 

【问题讨论】:

标签: python pandas data-analysis data-manipulation


【解决方案1】:

如果我们从你的例子开始:

df = pd.DataFrame({'Column1': [1, 3],
                   'Column2': [2,4]},
                  index = ['Row1', 'Row2'])

df

      Column1   Column2
Row1        1         2
Row2        3         4
  1. 使用 pd.concat 和 interleave 方法对每列进行复制,并确保每列的重复出现在其右侧:
from toolz import interleave
df = pd.concat([df, df], axis=1)[list(interleave([df]))]

此时,数据框如下所示:

df

     Column1 Column1 Column2 Column2
Row1       1       1       2       2
Row2       3       3       4       4
  1. 现在将数据框的列更改为 MultiIndex:
df.columns = pd.MultiIndex(levels=[['Column1', 'Column2'], ['A', 'B']],
           labels=[[0, 0, 1, 1], [0, 1, 0, 1]])

这导致数据框现在看起来像这样:

df

        Column1   Column2
        A   B     A   B
Row1    1   1     2   2
Row2    3   3     4   4

【讨论】:

  • 感谢 James Dellinger,你拯救了我的一天。
  • 没问题,能帮上忙是我的荣幸!这是一个让我了解pd.MultiIndex 工作原理的机会,尤其是labels 参数的工作原理。
猜你喜欢
  • 2015-01-13
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 2014-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多