【问题标题】:How to split dataframe based on row values of a column and make array with the divided groups as columns?如何根据列的行值拆分数据框并以划分的组为列制作数组?
【发布时间】:2022-01-19 13:08:21
【问题描述】:

我有一个包含四列的数据框。在“制度”列中有 2 个组(Ctrl 和 FR)。我想创建一个数组,其中行是复制,列是基于 ligt 机制的值。根据列 Regime 划分列 Value 并创建两个新列:Value_Ctrl 和 Value_FR。

这是原始数据框的样子:

Replication   Regime     Value
 1          Ctrl          2
 2          Ctrl          7
 3          Ctrl          1
 4          Ctrl          5
 1          FR           12
 2          FR           22
 3          FR           52
 4          FR           22

我想要

data = np.array[2, 12
                7, 22
                1, 52, 
                5, 22]


                               

【问题讨论】:

    标签: pandas reshape


    【解决方案1】:

    DataFrame.pivotDataFrame.to_numpy 一起使用:

    a = df.pivot('Replication','Regime','Value').to_numpy()
    print (a)
    [[ 2 12]
     [ 7 22]
     [ 1 52]
     [ 5 22]]
    

    【讨论】:

      【解决方案2】:

      请试试这个:

      df.groupby('Replication').agg({'Value': list}).values
      

      【讨论】:

        【解决方案3】:

        df1 = df[df[1] == 'CTRL']

        df2 = df[df[1] == 'FR']

        m = pd.merge(df1,df2,on=0)

        然后删除不需要的列

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-06-11
          • 2023-04-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-08
          • 1970-01-01
          相关资源
          最近更新 更多