По умолчанию pandas.read_csv()
будет читать строковый столбец, используя объект dtype. Начиная с pandas 1.0, вместо этого можно прочитать это как строку типа dtype. Я читаю CSV, где большинство столбцов являются строками. Могу ли я сказать pandas (пытаться) читать все нечисловые c столбцы как строки по умолчанию, а не как dtypes объекта?
Код:
import pandas
import io
s = """2,e,4,w
3,f,5,x
4,g,6,z"""
df = pandas.read_csv(io.StringIO(s))
print(df.dtypes)
df = pandas.read_csv(
io.StringIO(s),
dtype=dict.fromkeys([1, 3], pandas.StringDtype()))
print(df.dtypes)
Это приводит в:
2 int64
e object
4 int64
w object
dtype: object
2 int64
e string
4 int64
w string
dtype: object
Я использую pandas 1.0.0rc0. Чтение всего как строки dtype напрямую должно предотвратить проблемы со смешанными типами при записи в HDFStore .