Python ошибка панды при выборе столбца - PullRequest
0 голосов
/ 16 апреля 2020

Я создал фрейм данных с файлом .xlsx. Я хочу выбрать один столбец, но я получу KeyError, не знаю, почему это так.

df= pd.read_excel('example.xlsx', header=0, axis =1)

  customer_id   end customer name
0 1101          AAB
1 1102          AAC
2 1103          AAD
3 1104          AAE

df['end customer name']
KeyError: 'end customer name'

I've tried:
 - to remove the non-printable characters;
 - to use .iloc (doesn't solve what I want);
 - to convert the object to a string;
 - use thw following argument in pd.read_excel: encoding="utf-8-sig";

Что происходит и как решить эту проблему? Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Попробуйте указать имя столбца при создании кадра данных:

df= pd.read_excel('example.xlsx', 
                  header=0, 
                  axis =1,
                  columns=['customer_id','end_customer_name')])

Теперь у вас есть следующие варианты выбора целевого столбца:

df.iloc[:,1]
df.loc[:,'end_customer_name']
df['end_customer_name']

Возможно, есть некоторые дополнительные невидимые пробелы в исходном файле в .xlsx

0 голосов
/ 16 апреля 2020

Возможно, у вас есть пробел. Проверьте, если это ваша проблема. Вы также можете сослаться на второй столбец по df.iloc[:, 1].

import pandas as pd

df = pd.DataFrame({
    'customer_id': [1101, 1102, 1103, 1104],
    'end customer name': ['AAB', 'AAC', 'AAD', 'AAE']})

# works for me
df['end customer name']

# works by referencing the second column
df.iloc[:, 1]
...