Pandas читает dataframe из csv с индексом как string, а не int

Мой файл csv выглядит следующим образом:

INDEX, VAL 04016170,22 04206261,11 0420677,11 

df = pd.read_csv('data.csv', index_col='INDEX')

Как заставить панды читать индекс как строку, а не как целое (для сохранения первого 0 )?

  • Вращающиеся прокси для веб-соскабливания
  • конвертировать список в строку для вставки в мой sql в одной строке в python scrapy
  • Невозможно установить psycopg2 с помощью pip в virtualenv на Mac OS X 10.7
  • Сравнение двух списков и печать только различий? (XORing два списка)
  • Утечка памяти Python?
  • Как создать свойство класса?
  • Ошибка спецификации Python в файле Ascii
  • Как я могу обрабатывать статические файлы с помощью Pappon webapp2 в Heroku?
  • One Solution collect form web for “Pandas читает dataframe из csv с индексом как string, а не int”

    Вы можете передать dtype в качестве параметра, который отобразит столбец в переданный dtype:

     In [130]: import io import pandas as pd t="""INDEX,VAL 04016170,22 04206261,11 0420677,11""" df = pd.read_csv(io.StringIO(t), index_col='VAL', dtype={'INDEX':str}) df Out[130]: INDEX VAL 22 04016170 11 04206261 11 0420677 In [131]: df.info() <class 'pandas.core.frame.DataFrame'> Int64Index: 3 entries, 22 to 11 Data columns (total 1 columns): INDEX 3 non-null object dtypes: object(1) memory usage: 48.0+ bytes 

    РЕДАКТИРОВАТЬ

    Хорошо, вы можете сделать это таким образом, здесь появляется ошибка, когда вы явно устанавливаете index_col в read_csv , поэтому вам нужно сначала загрузить csv, а затем вызвать set_index после загрузки:

     In [134]: df = pd.read_csv(io.StringIO(t), dtype={'INDEX':str}) df = df.set_index('INDEX') df Out[134]: VAL INDEX 04016170 22 04206261 11 0420677 11 
    Python - лучший язык программирования в мире.