Недетерминированное существование DataFrame в Pandas при попытке отладки pytest с помощью точки останова () - PullRequest
0 голосов
/ 19 июня 2019

Я пытался отладить причину сбоя одного из моих pytests, и я использовал точку останова python3.7 () в моем pytest.У меня есть следующий код:

(Pdb) train_df 
   Acquisition_personal_win_amount            ...              yrs_since_earliest_degree
0                               -5            ...                                     -5
1                               -5            ...                                     -5
2                               -5            ...                                     -5
3                               -5            ...                                     -5
4                               -5            ...                                     -5
5                               -5            ...                                     -5
6                               -5            ...                                     -5

[7 rows x 488 columns]
(Pdb) len(train_df.columns.values)
488
(Pdb) train_df = train_df.assign(**{feat_name: -1 for feat_name in allowed_col_names if feat_name not in train_df.columns.values})
*** NameError: name 'train_df' is not defined

Обратите внимание, что train_df фактически определено!Есть ли какой-то нюанс с использованием списочных представлений, который мешает pdb обнаружить, что train_df существует?Или, может быть, проблема с исправлением некоторых переменных в pytest?

Та же самая проблема возникает, когда я пытаюсь использовать train_df.columns.values ​​

(Pdb) len(train_df.columns.values)
488
(Pdb) train_df = train_df.assign(**{feat_name: -1 for feat_name in allowed_col_names if feat_name not in train_df.columns.values})
*** NameError: name 'train_df' is not defined
(Pdb) train_df = train_df.assign(**{feat_name: -1 for feat_name in allowed_col_names if feat_name not in [1,2,3]})
(Pdb) 

Обратите внимание, как переключение на простой массив [1,2,3] не даетвопросы!

...