python-在熊猫csv中指定数据类型读取

我刚开始使用Pandas,正在使用3005524316772631551552方法读取csv文件。 我遇到的困难是阻止熊猫将我的电话号码转换为大数字,而不是将它们保留为字符串。 我定义了一个转换器,该转换器只保留数字,但后来仍然转换为数字。 当我更改转换器以在电话号码前加一个“ z”时,它们就停留在字符串上。 有什么办法可以保持它们的字符串而不修改字段的值?

Gardner asked 2020-08-10T17:35:15Z
2个解决方案
47 votes

从Pandas 0.11.0开始,您可以使用dtype参数为每列显式指定数据类型:

d = pandas.read_csv('foo.csv', dtype={'BAR': 'S10'})
zero323 answered 2020-08-10T17:35:20Z
16 votes

看来您无法避免熊猫尝试在CSV文件中转换数字/布尔值。 查看IO解析器的熊猫的源代码,尤其是功能_convert_to_ndarrays_convert_types。[https://github.com/pydata/pandas/blob/master/pandas/io/parsers.py]

阅读文件后,您始终可以分配所需的类型:

df.phone = df.phone.astype(str)
lbolla answered 2020-08-10T17:35:45Z
translate from https://stackoverflow.com:/questions/10591000/specifying-data-type-in-pandas-csv-reader