通过唯一列值将Pandas Dataframe转换为Numpy Vstack数组

我有一个具有以下结构的数据框:

df


     col_1  values
0     A      A 1
1     A      A 2
2     A      A 3
3     B      B 1
4     B      B 2

我需要将该数据帧(每个唯一组具有大约4000个值,并且有1000个组)转换为一个如下所示的numpy数组(应保留顺序)

import numpy as np
import pandas as pd

data = {'Group':['1','1','2','3','3'],'Value':[1,2,3,4,5,6]} 
df = pd.DataFrame(data) 

另外: 99%的组具有相同的值计数,但有些具有不同的计数。如果一些填充将可能增加到最大。计数,这样可以避免丢失数据。

此刻,我遍历唯一的“ Group”值并将numpy.vstack在一起。那太慢了,远非优雅。

NICHNICHNICH 回答:通过唯一列值将Pandas Dataframe转换为Numpy Vstack数组

IIUC,这只是pivot

(df.assign(col=df.groupby('Group').cumcount())
  .pivot(index='Group',columns='col',values='Value')
  .values
)

输出:

array([[1,2],[3,4],[5,6]],dtype=int64)
本文链接:https://www.f2er.com/2391549.html

大家都在问