将numpy ndarray数据放入熊猫

5 python arrays numpy multidimensional-array pandas

我想将以下数据放入熊猫进行进一步分析.

import numpy as np
import pandas as pd
from pandas import DataFrame

data = np.array([[[1, 1, 1, np.nan, 1], [np.nan, 1, 1, 1, 1]],
                 [[2, np.nan, 2, 2, 2], [2, np.nan, 2, 2, 2]],
                 [[3, 3, 3, np.nan, 3], [3, 3, 3, 3, np.nan]]])

pnda = pd.Series(data)

print pnda
Run Code Online (Sandbox Code Playgroud)

但是发生以下错误:

Exception: Data must be 1-dimensional
Run Code Online (Sandbox Code Playgroud)

这样做的好方法是什么?我的进一步分析是通过用三次或多项式方法插值来填充np.nan值,并将结果输出为numpy数组.

Sau*_*tro 2

根据您的评论,如果您 reshape data,使用该DataFrame.interpolate()方法进行插值,然后将数组返回到其原始值,您可以实现您想要的效果。它适用于pandas 0.13.1

df = pd.DataFrame(data.reshape(2, -1))
df.interpolate(axis=1).values.reshape(data.shape)
#array([[[1, 1, 1, 1, 1],
#        [1, 1, 1, 1, 1]],
#
#       [[2, 2, 2, 2, 2],
#        [2, 2, 2, 2, 2]],
#
#       [[3, 3, 3, 3, 3],
#        [3, 3, 3, 3, 3]]], dtype=int64)
Run Code Online (Sandbox Code Playgroud)