Я хочу указать типы данных для pandas read_csv. Вот быстрый взгляд на то, что работает, а затем нет, когда указаны типы. Почему последние не работают?pandas string типы данных
import io
import pandas as pd
csv = """foo,1234567,a,1
foo,2345678,b,3
bar,3456789,b,5
"""
df = pd.read_csv(io.StringIO(csv),
names=["fb", "num", "loc", "x"])
print(df)
df = pd.read_csv(io.StringIO(csv),
names=["fb", "num", "loc", "x"],
dtype=["|S3", "np.int64", "|S1", "np.int8"])
print(df)
Обновлен, чтобы сделать это намного проще и, надеюсь, более ясным в предложении BrenBarn. Мой реальный набор данных намного больше, но я хотел бы использовать метод для создания типов для всех моих данных при импорте.
Вы пытались сделать более простой набор данных и пытались использовать только один или два типа данных, чтобы узнать, какой из них вызывает проблему? – BrenBarn
Я сделаю это, хотя ошибка, которую он бросает, теперь предлагает (моему новизну), что я не правильно указываю, а не что несоответствие между моей спецификацией и данными. Но я дам ему выстрел и отчитаю! – Don
pandas преобразует указанный dtype строки, например '' S20'' в '' object'' dtype, который представляет типы строк. Почему это проблема? Это стандартный способ представления строк переменной длины (и на самом деле более эффективен, чем фиксированный '' S20'' dtype) – Jeff