#python #pandas #list #dataframe #for-loop
#python #pandas #Список #dataframe #для цикла
Вопрос:
У меня есть два фрейма данных в списке, теперь я хочу получить столбцы с нулевыми строками, которые указаны в другом списке. Я пытался получить, но получаю ошибку. Есть предложения о том, как это сделать?
l1 = ['b','c']
df_list = [df1,df2]
df1 =
a b c_r c_c c_d d
0 0 q 1 0 0 3
1 0 NaN 0 0 0 1
2 0 Nan 0 1 0 4
3 0 d 0 0 0 5
4 0 Nan 0 0 1 6
df2 =
a c d b_q b_d c_d
0 0 r 3 1 0 0
1 0 Nan 1 0 0 0
2 0 c 4 0 0 0
3 0 Nan 5 0 1 0
4 0 d 6 0 0 0
Мой код:
test_df=[]
for df in df_list:
for cn in l1:
test_df.append(df[df[cn].isnull()])
Комментарии:
1. столбец
b
не существует вdf2
иc
не существует вdf1
2. Я хочу получить только нулевые строки в df1 для b и нули для c в df2
3. затем проверьте, существует ли имя столбца или нет с помощью
for cn in l1: if en in df.columns.values:
4. Ура, спасибо, я понял. добавлено условие if, если cn в df: test_df.append(df[df[cn].isnull()]) и это сработало