首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >把矮小的数据放进熊猫

把矮小的数据放进熊猫
EN

Stack Overflow用户
提问于 2014-05-02 16:22:12
回答 2查看 4.7K关注 0票数 5

我想把下面的数据放到熊猫中作进一步的分析。

代码语言:javascript
运行
复制
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

但会发生以下错误:

代码语言:javascript
运行
复制
Exception: Data must be 1-dimensional

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-02 17:51:02

根据您的注释,如果您重塑data,使用DataFrame.interpolate()方法内插,然后将数组返回到它的原始值,您就可以实现您想要的结果。它适用于大熊猫0.13.1

代码语言:javascript
运行
复制
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)
票数 2
EN

Stack Overflow用户

发布于 2014-05-02 17:25:07

尝试使用面板:

代码语言:javascript
运行
复制
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

还有..。

代码语言:javascript
运行
复制
print(x.loc[0])
    0  1  2   3  4
0   1  1  1 NaN  1
1 NaN  1  1   1  1
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23432698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档