将分组数组元素从Pandas索引转换为Python

时间:2017-12-04 20:17:32

标签: python arrays pandas numpy

我有一个1x100 1D数组,看起来像:

(A1,B1,C1,D1),(A2,B2,C2.D2),(A3,B3,C3,D3) ..... (A100,B100,C100,D100)

我想将此数组转换为4x100 2D数组,如下所示:

A1, B1, C1, D1
A2, B2, C2, D2
A3, B3, C3, D3
A4, B4, C4, D4

....

A100, B100, C100, D100

我尝试使用Convert a 1D array to a 2D array in numpy重新整形数组,但这并没有解决将我的分组数组元素转换为单独数组元素的问题。

修改

我的数据集是从包含6列的普通Pandas数据框创建的。

df = pd.pivot_table(concord, index = ['Col1','Col2','Col3', 'Col4'], columns 
= 'Col5', values = 'Col6')

这会在数据框上生成一个由4列组成的索引,其列数与Col5中的行数相同。然后我用。生成我的分组数组。

df.index.values

这是我正在处理的一个例子:

df = pd.DataFrame(np.random.randn(6,4),columns=list('ABCD'))
df = pd.pivot_table(df, index = ['A','B'], columns = 'C', values = 'D')
df.index.values

1 个答案:

答案 0 :(得分:1)

<强>更新

In [156]: df.index.values
Out[156]:
array([(-1.1589142652108702, 0.9058310711560317), (-0.8998389109349003, -1.3963768690741623), (-0.39909436307375407, 0.19524579552938015), (
0.3879397588199493, -1.6231489531567047),
       (0.4850794016257364, 0.9079649929281776), (1.263583531683934, -0.8985146123002069)], dtype=object)

In [157]: np.array(df.index.values.tolist())
Out[157]:
array([[-1.15891427,  0.90583107],
       [-0.89983891, -1.39637687],
       [-0.39909436,  0.1952458 ],
       [ 0.38793976, -1.62314895],
       [ 0.4850794 ,  0.90796499],
       [ 1.26358353, -0.89851461]])

旧回答:

我想你想使用熊猫:

In [89]: a
Out[89]:
array([['A', 'B', '318443.998', '398601.13'],
       ['C', 'D', '318443.998', '398601.13']],
      dtype='<U10')

In [90]: df = pd.DataFrame(a)

In [91]: df
Out[91]:
   0  1           2          3
0  A  B  318443.998  398601.13
1  C  D  318443.998  398601.13