我有一个
pandas
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
True
和
False
南
. 然而
是的
值已转换为1和
假
值被转换为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,然后我将
假
. 但是我想避免我的价值观
是的
南
. 这是可能的,所以我不需要使用我所说的部分解决方案?