Подтвердить что ты не робот

KeyError при индексировании Pandas dataframe

Я пытаюсь прочитать данные из файла csv в фреймворк pandas и получить доступ к первому столбцу "Дата"

import pandas as pd
df_ticks=pd.read_csv('values.csv', delimiter=',')
print(df_ticks.columns)
df_ticks['Date']

дает следующий результат:

Index([u'Date', u'Open', u'High', u'Low', u'Close', u'Volume'], dtype='object')
KeyError: u'no item named Date'

Если я попытаюсь получить доступ к любому другому столбцу, например "Open" или "Volume", он работает как ожидалось

4b9b3361

Ответ 1

У вас, скорее всего, есть дополнительный символ в начале вашего файла, который добавляется к имени вашего первого столбца, 'Date'. Просто скопируйте/Вставьте свой вывод в консоль, отличную от юникода.

Index([u'?Date', u'Open', u'High', u'Low', u'Close', u'Volume'], dtype='object')

Ответ 2

Как упоминалось alko, это, вероятно, дополнительный символ в начале вашего файла. При использовании read_csv вы можете указать encoding для обработки символа кодирования и заголовка, известного как BOM (знак порядка байтов)

df = pd.read_csv('values.csv', delimiter=',', encoding="utf-8-sig")

Этот вопрос находит некоторые отголоски в Stackoverflow: Pandas, кажется, игнорирует имя первого столбца при чтении данных с разделителями-табуляторами, дает KeyError