我想把下面的数据放到熊猫中作进一步的分析。
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
但会发生以下错误:
Exception: Data must be 1-dimensional
这样做的好方法是什么?我进一步的分析是用三次或多项式插值法填充np.nan值,并将结果输出为numpy数组。
发布于 2014-05-02 17:51:02
根据您的注释,如果您重塑data
,使用DataFrame.interpolate()
方法内插,然后将数组返回到它的原始值,您就可以实现您想要的结果。它适用于大熊猫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)
发布于 2014-05-02 17:25:07
尝试使用面板:
import numpy as np
import pandas as pd
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]]])
x = pd.Panel(data)
x
<class 'pandas.core.panel.Panel'>
Dimensions: 3 (items) x 2 (major_axis) x 5 (minor_axis)
Items axis: 0 to 2
Major_axis axis: 0 to 1
Minor_axis axis: 0 to 4
还有..。
print(x.loc[0])
0 1 2 3 4
0 1 1 1 NaN 1
1 NaN 1 1 1 1
https://stackoverflow.com/questions/23432698
复制相似问题