将Numpy向量转换为列,熊猫

时间:2019-02-08 10:33:56

标签: python pandas numpy

我有一个形状为(14,50176)的numpay数组,看起来像这样。

[[219 220 221 ...  32  33  34]
 [154 152 149 ...  15  15  15]
 [205 202 192 ... 183 183 179]
 ...
 [  6   7   7 ...  24  24  25]
 [239 245 246 ... 101 117 128]
 [ 21  44  89 ... 120 120 121]]

现在我想将这14个向量转换为熊猫列。它应该看起来像这样

 vectors
0 [219 220 221 ...  32  33  34]
1 [154 152 149 ...  15  15  15]
2 [205 202 192 ... 183 183 179]
.    ...
3 [  6   7   7 ...  24  24  25]
4 [239 245 246 ... 101 117 128]
5 [ 21  44  89 ... 120 120 121]

2 个答案:

答案 0 :(得分:0)

您可以将值转换为list,但是随后会丢失熊猫中的矢量化函数:

a = np.array(
[[219,220,221,32,  33,  34],
 [154,152,149, 15, 15 ,15],
 [205,202,192, 183, 183, 179],
 [ 6, 7, 7, 24, 24, 25],
 [239, 245,246, 101, 117,128],
 [21, 44, 89, 120, 120,121]])


df = pd.DataFrame({'vectors':a.tolist()})
print (df)
                          vectors
0     [219, 220, 221, 32, 33, 34]
1     [154, 152, 149, 15, 15, 15]
2  [205, 202, 192, 183, 183, 179]
3           [6, 7, 7, 24, 24, 25]
4  [239, 245, 246, 101, 117, 128]
5     [21, 44, 89, 120, 120, 121]

最好将其转换为DataFrame

df = pd.DataFrame(a)
print (df)
     0    1    2    3    4    5
0  219  220  221   32   33   34
1  154  152  149   15   15   15
2  205  202  192  183  183  179
3    6    7    7   24   24   25
4  239  245  246  101  117  128
5   21   44   89  120  120  121

答案 1 :(得分:0)

假设您要表示14行和1列,则可能需要这样做:

pd.DataFrame(array).apply(list, axis=1)

如果要表示50176行和1列,则将其更改为:

pd.DataFrame(array).T.apply(list, axis=1)