#python #pandas
Вопрос:
Я пытаюсь создать новый фрейм данных pandas displayDF
с 4 столбцами из finalDF
фрейма данных .
displayDF = finalDF[['False','True','RULE ID','RULE NAME']]
Эта команда завершается ошибкой:
KeyError: "['False', 'True'] not in index"
Тем не менее, я вижу столбцы «Ложь» и «Истина», когда я запускаю finalDF.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 12 entries, 0 to 11
Data columns (total 6 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 rule_rec_id 12 non-null object
1 False 12 non-null int64
2 True 12 non-null int64
3 RULE ID 12 non-null object
4 RULE NAME 12 non-null object
5 RULE DESCRIPTION 12 non-null object
dtypes: int64(2), object(4)
memory usage: 672.0 bytes
Дополнительная справочная информация:
Я создал finalDF
, объединив два кадра данных ( pivot_stackedPandasDF
и dfPandaDescriptions
)
finalDF = pd.merge(pivot_stackedPandasDF, dfPandaDescriptions, how='left', left_on=['rule_rec_id'], right_on=['RULE ID'])
Я создал pivot_stackedPandasDF
с помощью этой команды.
pivot_stackedPandasDF = stackedPandasDF.pivot_table(index="rule_rec_id", columns="alert_value", values="count").reset_index()
Я думаю, что основная причина может быть в том, как я выполнил .pivot_table()
команду.
Комментарии:
1. Возможно ли, что фактическими столбцами во фрейме данных являются
True
иFalse
(логические литералы), а не'True'
и'False'
(строки)? Попробуйdf[[False, True, 'RULE ID', 'RULE NAME']]
2. Спасибо @HenryEcker, это именно то, что происходило.