gpt4 book ai didi

python - df.append() with dicts 将 bool 值转换为 1 和 0

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:33 25 4
gpt4 key购买 nike

假设我创建了一个空数据框:

df = pd.DataFrame()

然后我通过 df.append() 添加一个字典:

df.append({'A': 'foo', 'B': 'bar'}, ignore_index=True)

这给了我预期的结果

     A    B
0 foo bar

但是,如果字典值中有任何 bool 值,即

df.append({'A': True, 'B': False}, ignore_index=True)

bool 值被转换为 float 。

     A    B
0 1.0 0.0

为什么会发生这种情况/我怎样才能阻止这种转换?如果可能的话,我宁愿不对完成的数据框做任何事情(即,不希望将 float 强制转换回 bool 值)。

编辑:找到了我自己的解决方案,但仍然想知道为什么会发生上述行为。我的解决方案是:

df.append(pd.DataFrame.from_dict({'A': True, 'B': False}, orient='index').T, ignore_index=True)

哪个给出了想要的

      A      B
0 True False

最佳答案

您可以在追加之前将字典转换为 DataFrame 以保持数据类型一致:

df = pd.DataFrame()
df.append(pd.DataFrame({'A': True, 'B': False}, index = [0]))


A B
0 True False

关于python - df.append() with dicts 将 bool 值转换为 1 和 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49824804/

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