gpt4 book ai didi

python - Pandas .loc[] 副作用将 bools 更改为 floats

转载 作者:行者123 更新时间:2023-11-28 19:46:48 25 4
gpt4 key购买 nike

df = pd.DataFrame({'b':[False,True,False,True,False]})

# changes all False values to NaN
df.loc[~df['b'], 'b'] = np.nan

print(df.to_dict())
# {'b': {0: nan, 1: 1.0, 2: nan, 3: 1.0, 4: nan}}

由于 loc 仅更改列中的特定值,因此我期望类似 {'b': {0: nan, 1: True, 2: nan, 3: True, 4: nan}},事实并非如此。为什么 .loc 将 bool 值更改为 float ,对此有什么好的解决方法?

最佳答案

Python、NumPy、Pandas 中的bool 类型只能为True 或False。它不能是 NaN。因此,当您将 NaN 值引入 bool(或 int)系列时,它会变为 float

一种替代方法是使用第二个 bool 列来指示 NaN 值。另一种是使用 NumPy“屏蔽数组”。第三种可能是将列类型更改为 i1 并使用 -1 来指示 NaN。

关于python - Pandas .loc[] 副作用将 bools 更改为 floats,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51326825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com