当前位置:  开发笔记 > 编程语言 > 正文

pandas IndexError/TypeError与NaN值不一致

如何解决《pandasIndexError/TypeError与NaN值不一致》经验,为你挑选了0个好方法。

我有几个可变长度列表和一些空值.一个例子是:

In [108]: s0 = pd.Series([['a', 'b'],['c'],np.nan])
In [109]: s0
Out[109]: 
0    [a, b]
1       [c]
2       NaN
dtype: object

但另一个包含所有NaNs:

In [110]: s1 = pd.Series([np.nan,np.nan])
In [111]: s1
Out[111]: 
0    NaN
1    NaN
dtype: float64

我需要每个列表中的最后一项,这很简单:

In [112]: s0.map(lambda x: x[-1] if isinstance(x,list) else x)
Out[112]: 
0      b
1      c
2    NaN
dtype: object

但是在达到这个目的的过程中,我发现,如果没有它isinstance,当它上面的索引扼流圈在以下方面NaNs 做的不s0同时s1:

In [113]: s0.map(lambda x: x[-1])
...
TypeError: 'float' object is not subscriptable

In [114]: s1.map(lamda x: x[-1])
...
IndexError: invalid index to scalar variable.

有谁能解释为什么?这是一个错误吗?我正在使用Pandas 0.16.2和Python 3.4.3.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有