python-在熊猫DataFrame中将某些值替换为NaN时,如何避免数据类型转换?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-在熊猫DataFrame中将某些值替换为NaN时,如何避免数据类型转换?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1157字,纯文字阅读大概需要2分钟。
内容图文
![python-在熊猫DataFrame中将某些值替换为NaN时,如何避免数据类型转换?](/upload/InfoBanner/zyjiaocheng/686/6611d2a867d344ea846cbdf43c2b1b7f.jpg)
我有一个熊猫DataFrame,我需要基于过滤器将某些值替换为NaN.这样做时,我面临数据类型的更改.如何避免这种数据类型转换?
玩具示例代码
import pandas as pd
import numpy as np
df = pd.Series([False, True, False, True])
filter = pd.Series([True, True, False, False])
df[filter] = np.nan
我希望df也具有True和False值,来自NaN.但是,如下面的输出所示,将True值转换为1,将False值转换为0.
>>> df
0 NaN
1 NaN
2 0.0
3 1.0
dtype: float64
部分解决方案
我现在只能想到的部分解决方案如下:
df[df==1] = True
df[df==0] = False
print df
结果是:
>>> df
0 NaN
1 NaN
2 False
3 True
dtype: object
题
我知道,如果我检查值是否为1并与True进行比较,它将解析为True,并且在0和False之间也会发生相同的情况.但是,当我将任何值转换为NaN时,我希望避免将值True和False分别更改为0和1.这有可能使我不需要使用我所说的部分解决方案吗?
解决方法:
过滤前更改为对象
df = pd.Series([False, True, False, True])
filter = pd.Series([True, True, False, False])
df=df.astype('object')
df[filter] = np.nan
df
Out[623]:
0 NaN
1 NaN
2 False
3 True
dtype: object
更多信息
df.apply(type)
Out[625]:
0 <class 'float'>
1 <class 'float'>
2 <class 'bool'>
3 <class 'bool'>
dtype: object
内容总结
以上是互联网集市为您收集整理的python-在熊猫DataFrame中将某些值替换为NaN时,如何避免数据类型转换?全部内容,希望文章能够帮你解决python-在熊猫DataFrame中将某些值替换为NaN时,如何避免数据类型转换?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。