【问题标题】:How to rearrange/reorder the rows and columns in python dataframe?如何重新排列/重新排序python数据框中的行和列?
【发布时间】:2019-08-13 13:58:50
【问题描述】:

SCREEN SHOT OF ACTUAL DATA FRAME5000行192列的数据框

我想将我的 m 行和 n 列(m = 5000 和 n = 192)的数据框的大小更改为 n/3 行(64 行)和 m*5000 列(15000 列)的大小? ?

现有数据框

0 A1 A2 A3 A4 A5 A6 A7 A8 A9.....A192
1 B1 B2 B3 B4 B5 B6 B7 B8 B9.....B192
.
.
.
5000 192 X1 X2 X3 X4 X5 X6 X7 X8 X9.....X192

期望的数据框

0 A1 A2 A3 B1 B2 B3.....X1 X2 X3
1 A4 A5 A6 B4 B5 B6.....X4 X5 X6
2 A7 A8 A9 B7 B8 B9.....X7 X8 X9
.
.
64 A190 A191 A192 B190 B191 B192.....X190 X191 X192

【问题讨论】:

    标签: python python-3.x pandas dataframe multiple-columns


    【解决方案1】:

    IIUC,可以使用循环

    pd.DataFrame([df.iloc[:, e:e+3].values.flatten() for e in range(0, 192, 3)])
    

    【讨论】:

    • 完美。效果很好:)
    【解决方案2】:

    我将使用groupby

    pd.DataFrame([y.values.ravel()for x , y in df.groupby(np.arange(df.shape[1])//3,axis=1)])
    

    【讨论】:

      【解决方案3】:

      你可以试试:

      
      df = pd.DataFrame(np.array([x.ravel() for x in np.split(df.values,
                                                    df.shape[1]//3, axis = 1)]))
      

      【讨论】:

      • 我对它进行了测试,它对我来说很好,即使我不确定你所说的 df_z 是什么意思
      【解决方案4】:
      np.concatenate([np.reshape(col,(64,3)) for col in data.T.values],axis=1)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-12
        • 2017-08-03
        • 2020-08-16
        • 2013-01-12
        • 1970-01-01
        • 2019-02-12
        • 2020-02-24
        • 2011-08-03
        相关资源
        最近更新 更多