首页 > 解决方案 > 读取熊猫数据框中的 np 数组

问题描述

我有一组数据,如下所示:

12 , 12 , 12 , 12    #Data 1
16 , 16 , 16 , 16    #Data 2
3  , 3  , 3  , 3     #Data 3
3  , 3  , 3  , 3     ..
2  , 2  , 2  , 2     ..
9  , 9  , 9  , 9     ..
15 , 15 , 15 , 15    ..

并且数据是逐行的,如图所示。

现在,我需要在pandas. 问题是,以我有限的知识,熊猫读取数据列,而不是行。

所以,(以及其他一些原因),我读入数据numpy并尝试将 numpy 数组读入 pandas,如下所示:

#!/usr/bin/env python3

import numpy as np
import pandas

names = ["A", "B", "C", "D", "E", "F", "G"]
data = np.genfromtxt("trial.dat", delimiter=',')
print(type(data))
print(data)
dataset = pandas.DataFrame(data=data, columns=names)

这是给:

python3 mwe.py 
<class 'numpy.ndarray'>
[[12. 12. 12. 12.]
 [16. 16. 16. 16.]
 [ 3.  3.  3.  3.]
 [ 3.  3.  3.  3.]
 [ 2.  2.  2.  2.]
 [ 9.  9.  9.  9.]
 [15. 15. 15. 15.]]
ValueError: Wrong number of items passed 4, placement implies 7
ValueError: Shape of passed values is (7, 4), indices imply (7, 7)

不匹配基本上来自名称维度,与

names = ["A", "B", "C", "D"]

和打印(数据集)

我正进入(状态:

class 'numpy.ndarray'>
[[12. 12. 12. 12.]
 [16. 16. 16. 16.]
 [ 3.  3.  3.  3.]
 [ 3.  3.  3.  3.]
 [ 2.  2.  2.  2.]
 [ 9.  9.  9.  9.]
 [15. 15. 15. 15.]]
      A     B     C     D
0  12.0  12.0  12.0  12.0
1  16.0  16.0  16.0  16.0
2   3.0   3.0   3.0   3.0
3   3.0   3.0   3.0   3.0
4   2.0   2.0   2.0   2.0
5   9.0   9.0   9.0   9.0
6  15.0  15.0  15.0  15.0

但在 Pandas 数据集中,我想要:

A    B 
12   16
12   16
12   16
12   16 

等,即沿着and-array的行。

那么,我如何将 np-ndarray 读取到 pandas 中呢?

标签: pythonpandasnumpy

解决方案


转置 np_array

dataset = pandas.DataFrame(data=data.T, columns=names)

推荐阅读