У меня есть фрейм данных с 4 столбцами A, B, C, D и List.i мне нужно создать столбцы, используя столбцы B, C, D и список, как показано в разделе вывода ниже.
hier_List= [[pages2 , book1 , paper3] , [pen1 , rifle2 , ink3] , [words1 ,book2, ink3]]
Столбец должен быть создан с использованием приведенных выше списков.
dataframe:
A B C D
C_1 1971 book1 nan
C_1 1971 pages2 pages2
C_1 1970 book1 nan
C_1 1972 book1 nan
C_1 1973 letters4 nan
выход:
Для каждой строки я должен проверить, присутствует ли значение столбца C в каком-либо из подсписков в hier_list. Если флаг присутствует, то да, иначе нет.
A B C D is_present_any_list
C_1 1971 book1 nan yes
C_1 1971 pages2 pages2 yes
C_1 1970 book1 nan yes
C_1 1972 book1 nan yes
C_1 1973 letters4 nan no
Я не могу понять, как это сделать, пожалуйста, помогите мне в этом и дайте мне знать, если вам нужны дополнительные разъяснения.
Используйте numpy.where
с isin
и numpy.concatenate
вложенный список с помощью numpy.concatenate
:
df['is_present_any_list'] = np.where(df['C'].isin(np.concatenate(hier_List)), 'yes', 'no')
print (df)
A B C D is_present_any_list
0 C_1 1971 book1 NaN yes
1 C_1 1971 pages2 pages2 yes
2 C_1 1970 book1 NaN yes
3 C_1 1972 book1 NaN yes
4 C_1 1973 letters4 NaN no