#pandas #dataframe #csv #keyerror
#панды #фрейм данных #csv #ошибка ключа
Вопрос:
У меня есть 3 кадра данных pd, и по какой-то причине только у 2 из них есть эта проблема, хотя все 3 из них были созданы одинаково. Я импортировал их с:
df1= pd.read_csv('filepath.csv') df2 = pd.read_csv('filepath2.csv') df3 = pd.read_csv('filepath3.csv')
код, вызывающий столбцы фреймов данных, выглядит следующим образом:
features = df2['f1', 'f2', 'f3', 'f4', 'f5', 'f6'] target = df2['t'] x = df2[features] y = df2[target]
и хотя это сработало для первого кадра данных, для df2 и df3 это не так. Я получаю ключевую ошибку при запуске кода:
KeyError: ('f1', 'f2', 'f3', 'f4', 'f5', 'f6')
в то время как df2.keys() возвращает это:
Index(['f0', 'f1', 'f3', 'f4', 'f5', 'f6', 'f7', 't'], dtype='object')
и
print(dfPNC.columns.tolist())
возвращает это:
['f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 't']
Я пытался исправить это с помощью этих методов, однако безуспешно:
sep=r's*,s*' #when reading the csv sep = r',', skipinitialspace = True, engine = 'python' #2nd attempt when reading the csv features = [['f1','f2', 'f3', 'f4', 'f5', 'f6', 'f7']] #3rd attempt however raises a boolean error
Комментарии:
1. Похоже, в вашем файле нет столбца под названием
t
?2. это так, я просто отредактировал его, чтобы отразить, что, извините, когда я пытаюсь сначала запустить целевой столбец, меня встречает ошибка ключа: «Ни один из [Int64Index…dtype=’int64′, длина=153)] не находится в [столбцах]»
3. Почему бы просто
x = df2[['f1', 'f2', 'f3', 'f4', 'f5', 'f6']]
не иy = df2['t']
(илиy = df[['t']]
если вам нужен фрейм данных…) ?4. это вызывает те же ошибки, я не пытаюсь создать новый фрейм данных, я пытаюсь присвоить эти переменные x и y функциям и целевым значениям фрейма данных, чтобы я мог выполнять аналитические функции
5. Чтобы извлечь по столбцам, вам нужно
[[
какfeatures = df2[['f1', 'f2', 'f3', 'f4', 'f5', 'f6']]
.