Я только начинаю с Pandas, и я читаю в CSV файле, используя метод read_csv()
. Трудность, с которой я сталкиваюсь, не позволяет пандам преобразовывать мои телефонные номера в большие числа, вместо того, чтобы держать их как строки. Я определил конвертер, который только что оставил числа в одиночку, но затем они все равно преобразуются в числа. Когда я изменил свой конвертер, чтобы добавить "z" к номерам телефонов, они остались в строках. Есть ли способ сохранить их, не изменяя значения полей?
Указание типа данных в считывателе Pandas csv
Ответ 1
Начиная с Pandas 0.11.0, вы можете использовать аргумент dtype для явного указания типа данных для каждого столбца:
d = pandas.read_csv('foo.csv', dtype={'BAR': 'S10'})
Ответ 2
Похоже, вы не можете избежать того, чтобы панды пытались преобразовать числовые/логические значения в файл CSV. Взгляните на исходный код pandas для парсеров ввода-вывода, в частности функции _convert_to_ndarrays
и _convert_types
. https://github.com/pydata/pandas/blob/master/pandas/io/parsers.py
Вы всегда можете назначить тип, который вы хотите, после того, как прочитали файл:
df.phone = df.phone.astype(str)