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", он работает как ожидалось
Ответы
Ответ 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