带有dicts的df.append()将布尔值转换为1和0

时间:2018-04-13 20:39:13

标签: python python-3.x pandas

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

df = pd.DataFrame()

我通过df.append()添加词典:

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

这给了我

的预期结果
     A    B
0  foo  bar

但是,如果dict值中有任何布尔值,即

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

布尔值被转换为浮子。

     A    B
0  1.0  0.0

为什么会发生这种情况?如何防止这种转换?如果可能的话,我宁愿不对完成的数据帧做任何事情(也就是说,不希望从浮动强制转换为布尔值)。

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

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

这给出了所需的

      A      B
0  True  False

1 个答案:

答案 0 :(得分:0)

您可以在追加之前将dict转换为DataFrame,以保持数据类型的一致性:

$sql = "SELECT * FROM ".$this->standardsTable." WHERE Standard LIKE '%".$this->keyword."%' ";
$results = $this->conn->query($sql);