【问题标题】:Split 1-column dataframe rows into new colums将 1 列数据框行拆分为新列
【发布时间】:2022-06-15 22:46:52
【问题描述】:

我有一个包含 x 行的数据框,并希望将其拆分为 x 行并放入新数据框中的列中。

我找到了这个示例(x 数据帧中的 30 行),如果我将它拆分为行 x col = 30(每列低于 10 行 => 3 col)的地方,它可以工作

k = pd.concat([pd.Series(j, name='y' + str(i), index=range(0,10)) for i,j in enumerate(np.array_split(x['TEST'].values, 3))], axis=1)

但如果我愿意,例如列中有 8 行,表示 4 列,最后一列的大小不是 8,我收到此错误

ValueError: Length of values (7) does not match length of index (8)

那么如何将一列拆分为 x 个块,然后在新数据框中自动获取 y 列?

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    您可以指定要拆分的索引,而不是指定块的数量:

    x = pd.DataFrame({'TEST': range(30)})
    n = 8
    pd.concat([pd.Series(j, name='y' + str(i)) for i,j in enumerate(np.split(x['TEST'].to_numpy(), range(n, len(x['TEST']), n)))], axis=1)
    

    结果:

       y0  y1  y2    y3
    0   0   8  16  24.0
    1   1   9  17  25.0
    2   2  10  18  26.0
    3   3  11  19  27.0
    4   4  12  20  28.0
    5   5  13  21  29.0
    6   6  14  22   NaN
    7   7  15  23   NaN
    

    【讨论】:

      猜你喜欢
      • 2013-04-21
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多