如何将数组转换为数据帧?

时间:2017-06-03 18:53:14

标签: python numpy dataframe

我有这个数组,并希望将其转换为DataFrame,但会出错。

数组k如下所示:

In[10]: print(k)

Out[10]:
(array([        nan,         nan,         nan, ...,  0.73820147,
        0.7381864 ,  0.73820208]), array([        nan,         nan,         nan, ...,  0.74638753,
        0.74618251,  0.745983  ]))

然后我试着:

In[11]: df=pd.DataFrame(k)

Out[11]:..

  File "C:\Users\admin\Anaconda2\lib\site-packages\pandas\core\frame.py", line 354, in __init__
    raise ValueError('DataFrame constructor not properly called!')

ValueError: DataFrame constructor not properly called!

2 个答案:

答案 0 :(得分:0)

您正在将tuple传递给DataFrame构造函数。你需要传递一个清单。

试试这个:

import pandas as pd

data = (np.array([np.nan, 0.738202]),
        np.array([np.nan, 0.745983]))

df = pd.DataFrame(list(data))
df = pd.DataFrame(data)

第二个构造函数将失败。

答案 1 :(得分:0)

您的k是一个包含numpy数组的元组。尝试

df = pd.DataFrame(list(k))

代替。这将从您的元组元素中生成一个列表。