为什么pandas.apply()在null元素上执行?

亚历克斯

据说,pandas.apply()函数不适用于null元素。但是,在下面的代码中不会发生这种情况。为什么会这样呢?

import pandas as pd
df = pd.Series([[1,2],[2,3,4,5],None])
df
0          [1, 2]
1    [2, 3, 4, 5]
2            None
dtype: object
df.apply(lambda x: len(x))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Alexander\Anaconda3\lib\site-packages\pandas\core\series.py", l
ine 2169, in apply
    mapped = lib.map_infer(values, f, convert=convert_dtype)
  File "pandas\src\inference.pyx", line 1059, in pandas.lib.map_infer (pandas\li
b.c:62578)
  File "<stdin>", line 1, in <lambda>
TypeError: object of type 'NoneType' has no len()
克利隆

None和nan在语义上是等效的。用numpy.nan替换None没有意义。apply仍会将功能应用于NaN元素。

df[2] = numpy.nan
df.apply(lambda x: print(x))

Output: [1, 2]
        [2, 3, 4, 5]
        nan

您必须在要应用或使用pandas.dropna的函数中检查缺少的值,并将该函数应用于结果:

df.dropna().apply(lambda x: print(x))

另外,可以使用usepandas.notnull()返回一系列布尔值:

df[df.notnull()].apply(lambda x: print(x))

另请阅读:http : //pandas.pydata.org/pandas-docs/stable/missing_data.html

具体来说:

警告:

必须记住,在python(和numpy)中,nan的比较不相等,但None可以。注意,Pandas / numpy使用np.nan!= np.nan的事实,并将None视为np.nan。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

pandas.Series.interpolate()不执行任何操作。为什么?

来自分类Dev

为什么这种闭包不能在int范围的每个元素上执行?

来自分类Dev

在表单元素上执行reset方法时,为什么不重置隐藏字段?

来自分类Dev

在表单元素上执行reset方法时,为什么不重置隐藏字段?

来自分类Dev

为什么要在Pandas.DataFrame上使用Pandas.Series

来自分类Dev

为什么在错误的线程上执行“ RunWorkerCompleted”?

来自分类Dev

为什么jQuery的元素高度返回null?

来自分类Dev

在Javascript中,为什么在元素上设置externalHTML会将其parentNode设置为“ null”?

来自分类Dev

为什么在应用apply和pandas DateOffset的计算中不能使用数据框的数字索引?

来自分类Dev

为什么我在getView上获取null?

来自分类Dev

为什么我不能在这些代码行上应用pandas.cut()?

来自分类Dev

为什么在Python Pandas dtype float64上出现错误?

来自分类Dev

为什么绝对定位元素显示在静态元素上?

来自分类Dev

为什么将“ null”传递给“ apply”或“ call”?

来自分类Dev

为什么`NOT(NULL=NULL)` 是假的?

来自分类Dev

为什么在UI线程上执行线程池工作项?

来自分类Dev

为什么在每个请求上执行passport.serializeUser?

来自分类Dev

为什么AngularJS在每个摘要循环上执行函数?

来自分类Dev

为什么我的代码无法在ipython Notebook上执行?

来自分类Dev

为什么在GPU上不执行OpenACC教程代码?

来自分类Dev

为什么要在Mercurial的Strip上执行预出钩?

来自分类Dev

为什么在UI线程上执行线程池工作项?

来自分类Dev

为什么在每个请求上执行passport.serializeUser?

来自分类Dev

为什么AngularJS在每个摘要循环上执行函数?

来自分类Dev

为什么不在 Windows 上执行 GIT 钩子?

来自分类Dev

为什么泄漏内存比在动态数组上执行 delete[] 慢

来自分类Dev

为什么setTimeout立即执行?

来自分类Dev

.vimrc为什么不执行?

来自分类Dev

为什么执行此功能?

Related 相关文章

  1. 1

    pandas.Series.interpolate()不执行任何操作。为什么?

  2. 2

    为什么这种闭包不能在int范围的每个元素上执行?

  3. 3

    在表单元素上执行reset方法时,为什么不重置隐藏字段?

  4. 4

    在表单元素上执行reset方法时,为什么不重置隐藏字段?

  5. 5

    为什么要在Pandas.DataFrame上使用Pandas.Series

  6. 6

    为什么在错误的线程上执行“ RunWorkerCompleted”?

  7. 7

    为什么jQuery的元素高度返回null?

  8. 8

    在Javascript中,为什么在元素上设置externalHTML会将其parentNode设置为“ null”?

  9. 9

    为什么在应用apply和pandas DateOffset的计算中不能使用数据框的数字索引?

  10. 10

    为什么我在getView上获取null?

  11. 11

    为什么我不能在这些代码行上应用pandas.cut()?

  12. 12

    为什么在Python Pandas dtype float64上出现错误?

  13. 13

    为什么绝对定位元素显示在静态元素上?

  14. 14

    为什么将“ null”传递给“ apply”或“ call”?

  15. 15

    为什么`NOT(NULL=NULL)` 是假的?

  16. 16

    为什么在UI线程上执行线程池工作项?

  17. 17

    为什么在每个请求上执行passport.serializeUser?

  18. 18

    为什么AngularJS在每个摘要循环上执行函数?

  19. 19

    为什么我的代码无法在ipython Notebook上执行?

  20. 20

    为什么在GPU上不执行OpenACC教程代码?

  21. 21

    为什么要在Mercurial的Strip上执行预出钩?

  22. 22

    为什么在UI线程上执行线程池工作项?

  23. 23

    为什么在每个请求上执行passport.serializeUser?

  24. 24

    为什么AngularJS在每个摘要循环上执行函数?

  25. 25

    为什么不在 Windows 上执行 GIT 钩子?

  26. 26

    为什么泄漏内存比在动态数组上执行 delete[] 慢

  27. 27

    为什么setTimeout立即执行?

  28. 28

    .vimrc为什么不执行?

  29. 29

    为什么执行此功能?

热门标签

归档