python-熊猫在原位应用更新,但不返回任何值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-熊猫在原位应用更新,但不返回任何值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1225字,纯文字阅读大概需要2分钟。
内容图文
我不了解此套用行为..熊猫套用到位更新但返回无
>>>import pandas as pd
>>>df_test = pd.Series({0: {'A', 'E'},
1: {'A', 'C', 'E', 'S'},
2: {'A', 'C', 'E'},
3: {'A', 'C', 'E', 'S'},
4: {'A', 'E'}})
>>>df_test
0 {A, E}
1 {A, S, E, C}
2 {A, C, E}
3 {A, S, E, C}
4 {A, E}
dtype: object
>>>df_test.apply(lambda x: x.add("X"))
0 None
1 None
2 None
3 None
4 None
dtype: object
但,
>>>df_test
0 {A, X, E}
1 {A, X, S, E, C}
2 {A, X, C, E}
3 {A, X, S, E, C}
4 {A, X, E}
dtype: object
因此df_test已更新.但是如果我这样做:
>>> df_test = df_test.apply(lambda x: x.add("X"))
>>> df_test
0 None
1 None
2 None
3 None
4 None
dtype: object
对此行为的解释是什么-应用正在就地更新数据帧,但返回的类型为None.
解决方法:
添加到集合中是返回空值的就地操作,因此在更新系列时,从apply返回的副本的每一行都将设置为None.
如果您真的想在调用apply时查看结果,而不是添加到集合中,则可以使用两个集合的并集来获得所需的结果:
df_test.apply(lambda x: x | {'X'})
0 {A, X, E}
1 {A, X, E, C, S}
2 {A, X, E, C}
3 {A, X, E, C, S}
4 {A, X, E}
哪个不会修改原始系列:
df_test
0 {A, E}
1 {A, E, C, S}
2 {A, E, C}
3 {A, E, C, S}
4 {A, E}
内容总结
以上是互联网集市为您收集整理的python-熊猫在原位应用更新,但不返回任何值全部内容,希望文章能够帮你解决python-熊猫在原位应用更新,但不返回任何值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。