【问题标题】:Combining the Rows of All Columns into a Single Column [duplicate]将所有列的行组合成一列[重复]
【发布时间】:2022-03-04 10:50:40
【问题描述】:

Example Pandas DataFrame

如何将所有列中的所有行合并为一列?我想将 C2 和 C3 中的行附加到 C1。也就是说,有一列 C1 有 15 行,每行都有各自的值。

【问题讨论】:

标签: python pandas dataframe jupyter-notebook


【解决方案1】:

一种方法是从原始 DataFrame 下的 reshaped numpy 数组创建一个新的 DataFrame,使用 order='F' 将列堆叠在一起:

df_new = pd.DataFrame(df.to_numpy().reshape(-1, 1, order='F'), 
                      columns=['C1'])

numpy.reshape documentation的相关部分:

顺序:{‘C’、‘F’、‘A’},可选

使用该索引读取 a 的元素 排序,并使用此索引将元素放入重塑后的数组中 命令。 ‘C’ 表示使用类 C 索引读取/写入元素 顺序,最后一个轴索引变化最快,回到第一个 轴指数变化最慢。 ‘F’表示读/写元素 使用类似 Fortran 的索引顺序,第一个索引变化最快, 最后一个索引变化最慢

【讨论】:

    【解决方案2】:

    一种方法是使用pd.DataFrame.melt:

    df.melt()
    

    输出:

       variable value
    0        C1     A
    1        C1     B
    2        C1     C
    3        C1     D
    4        C1     E
    5        C2     F
    6        C2     G
    7        C2     H
    8        C2     I
    9        C2     J
    10       C3     K
    11       C3     L
    12       C3     M
    13       C3     N
    14       C3     O   
    

    【讨论】:

      猜你喜欢
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-04
      相关资源
      最近更新 更多