文本解释为布尔值

时间:2016-07-01 16:10:49

标签: python python-3.x pandas

我正在使用带有read_csv的pandas。如果所有值都是“true”或“false”,它会将字符串解释为boolean。我该如何防止这种情况?

我的data.csv文件内容:

String1,String2
true,false
true,false
true,true

代码

import pandas
df = pandas.read_csv("data.csv", true_values=None, false_values=None)
Nonetrue_values的{​​p> false_values应为默认值,将其保留为同样的结果。 df的值是:

  String1 String2
0    True   False
1    True   False
2    True    True

如果我的数据文件包含“true”或“false”以外的值,则它会将数据解释为字符串。例如。 data.csv内容:

String1,String2
true,false
true,nazca
true,true

给出了df

  String1 String2
0    True   false
1    True   nazca
2    True    true

即使数据似乎是所有布尔值,我如何读取字符串?

1 个答案:

答案 0 :(得分:1)

您可以将dtype参数作为对象传递:

df = pd.read_csv("test.csv", dtype="O")

这会将所有列视为对象。如果您只想将其应用于这些特定列,则可以传递字典:

df = pd.read_csv("test.csv", dtype={"String1": "O", "String2": "O"})