Панды находят контент по ярлыку не работающим - PullRequest
0 голосов
/ 10 мая 2018

Ошибка получения ключа в пандах Python (3.5) (0.22.0) при следующих обстоятельствах.импортируя эти данные CSV, например:

'First', 'Name', 'Second', 'Number', 'Another Number', 'Random Exclamation', 'Time', 'Left', 'Anyway'
91004, 'Freddy', 1.518990585, 1.1000082, 5790, 'Hooray', 7241606319.947, 1939238254.77354879, 1.215094577191377

Я импортирую это таким образом:

test=pd.read_csv('test.csv')

Я могу сделать это:

>>> test.dtypes
'First'                   int64
'Name'                   object
'Second'                float64
'Number'                float64
'Another Number'          int64
'Random Exclamation'     object
'Time'                  float64
'Left'                  float64
'Anyway'                float64
dtype: object

и это:

>>> test.loc[0]
'First'                       91004
'Name'                     'Freddy'
'Second'                    1.51899
'Number'                    1.10001
'Another Number'               5790
'Random Exclamation'       'Hooray'
'Time'                  7.24161e+09
'Left'                  1.93924e+09
'Anyway'                    1.21509
Name: 0, dtype: object

И это:

>>>test.loc[0][0]
91004    

Но если я попробую это:

>>>test.loc['First']

или вот это:

>>>test.loc[0, 'First']

Я получу это:

KeyError: 'the label [First] is not in the [index]'

Это самый краткий пример моей проблемы.Я перепробовал множество комбинаций, пытаясь получить доступ к данным по меткам, которые вам не надоест, и ни одна из них не работает.Я перепробовал множество подобных тестовых данных, а также удалил все пробелы из CSV при случайном отключении, но это не имеет значения.Как же я могу получить доступ к данным в моем фрейме по метке?Я новичок в пандах и гуглил это часами.Обычно это означает, что я очень глуп, поэтому любая помощь приветствуется.Спасибо.

1 Ответ

0 голосов
/ 10 мая 2018

Вам не хватает внутренних кавычек. В Python кавычки (одинарные или двойные) могут обозначать строку, поэтому вам нужно использовать двойные внешние кавычки с одинарными внутренними кавычками. Попробуйте вместо этого:

test.loc[0, "'First'"]

Я настоятельно рекомендую вам очистить имена столбцов, удалив знаки препинания и пробелы в начале / конце:

test.columns = test.columns.str.replace('[^\w\s]','').str.strip()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...