Получение KeyError после чтения в CSV с разделением каналов - PullRequest
0 голосов
/ 20 мая 2018

Я читаю в CSV с разделением каналов, как это

test = pd.read_csv("http://kejser.org/wp-content/uploads/2014/06/Country.csv")
test.head()

Это возвращает

  SK_Country|"Number"|"Alpha2Code"|"Alpha3Code"|"CountryName"|"TopLevelDomain"
0                    1|20|"ad"|"and"|"Andorra"|".ad"                          
1                 2|4|"af"|"afg"|"Afghanistan"|".af"                          
2        3|28|"ag"|"atg"|"Antigua and Barbuda"|".ag"                          
3                  4|660|"ai"|"aia"|"Anguilla"|".ai"                          
4                     5|8|"al"|"alb"|"Albania"|".al"

Когда я пытаюсь извлечь из него конкретные данные, как показано ниже:

 df = test[["Alpha3Code"]]

Я получаю следующую ошибку:

KeyError: ['Alpha3Code'] отсутствует в индексе

Я не понимаю, что идет не так - я могувижу, что значение находится в CSV, когда я печатаю голову, также, когда я открываю CSV, все выглядит хорошо.

Я попытался погуглить и прочитать некоторые посты, касающиеся проблемы здесь, в стеке и попыталсяразные подходы, но, кажется, ничто не решает эту досадную проблему.

Ответы [ 2 ]

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

Как указано в комментарии @chrisz, вы должны указать разделитель:

test = pd.read_csv("http://kejser.org/wp-content/uploads/2014/06/Country.csv",delimiter='|')
test.head()
SK_Country  Number Alpha2Code Alpha3Code          CountryName  \
0           1      20         ad        and              Andorra   
1           2       4         af        afg          Afghanistan   
2           3      28         ag        atg  Antigua and Barbuda   
3           4     660         ai        aia             Anguilla   
4           5       8         al        alb              Albania   

  TopLevelDomain  
0            .ad  
1            .af  
2            .ag  
3            .ai  
4            .al  
0 голосов
/ 20 мая 2018

Обратите внимание, как все втиснуто в один строковый столбец?Это потому, что вы не указали разделитель столбцов для pd.read_csv, который в этом случае должен быть '|'.

test = pd.read_csv("http://kejser.org/wp-content/uploads/2014/06/Country.csv", 
                   sep='|')
test.head()

#    SK_Country  Number Alpha2Code Alpha3Code          CountryName  \
# 0           1      20         ad        and              Andorra   
# 1           2       4         af        afg          Afghanistan   
# 2           3      28         ag        atg  Antigua and Barbuda   
# 3           4     660         ai        aia             Anguilla   
# 4           5       8         al        alb              Albania   
# 
#   TopLevelDomain  
# 0            .ad  
# 1            .af  
# 2            .ag  
# 3            .ai  
# 4            .al 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...