簡體   English   中英

熊貓數據框列到分層數據結構?

[英]pandas dataframe columns to hierarchical data structure?

我有一個包含多列的熊貓數據框。 某些列可按層次分組。 我想使用這種可分組性將列結構變成層次結構以用於機器學習環境。

例子:

我的熊貓框架有列runobj_iddata ,它可以如下所示:

Index    run    obj_id    data1    data2
0        0      0         1.3134   3.4943
1        0      0         2.3311   5.4434
2        1      0         1.3345   6.9942
3        1      0         3.4422   3.5353
4        0      1         4.2233   0.3112

等等。 我想在這里做的是首先為每個obj_id訓練一個單獨的模型。 然后我想把run變成batch,也就是每次run都應該看成一個batch。 然后data列應該是特征。

結果可能如下所示:

X = [ # obj_id: model
      [ # run: batch
        [ # data_: features
          [1.3134, 3.4943], 
          [2.3311, 5.4434]
        ], 
        [
          [1.3345, 6.9942], 
          [3.4422, 3.5353]
        ]
      ]

有沒有一種簡單的方法來進行這種轉換?

不是最好的解決方案,但你可以這樣做:

(df.groupby('obj_id')
   .apply(lambda x: x.groupby('run')['data1','data2']
                     .apply(lambda y: y.values.tolist() )
                     .to_list()
         )
   .to_list()
)

輸出:

[
    [
        [
            [1.3134, 3.4943], 
            [2.3311, 5.4434]
        ], 
        [
            [1.3345, 6.9942], 
            [3.4422, 3.5353]
        ]
    ],
    [
        [
            [4.2233, 0.3112]
        ]
    ]
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM