Как определить, содержит ли столбец определенные элементы в пандах - PullRequest
0 голосов
/ 08 октября 2018

Я хочу проверить, содержит ли столбец app элемент myList.

import pandas as pd 
df=pd.DataFrame({'app':['a,b,c','e,f']})
myList=['b', 'f']
print(df)

Output:

     app
0  a,b,c
1    e,f

Expected:

     app  contains_b  contains_f
0  a,b,c          1           0
1    e,f          0           1

1 Ответ

0 голосов
/ 08 октября 2018

Используйте str.get_dummies для всех столбцов индикатора, а затем отфильтруйте их по reindex по списку:

df = df.join(df['app'].str.get_dummies(',').reindex(columns=myList).add_prefix('contains_'))
print (df)
     app  contains_b  contains_f
0  a,b,c           1           0
1    e,f           0           1

Или используйте цикл с str.contains и приведение логической маски к целым числам:

for c in myList:
    df[f'contains_{c}'] = df['app'].str.contains(c).astype(int)
print (df)
     app  contains_b  contains_f
0  a,b,c           1           0
1    e,f           0           1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...