パイソンパンダ:出力次いで、全体データフレーム内のサブストリングが発見されたカラム(複数可)の名前をサブストリングを検索します

minnymate:
key_words_to_search = ['hello', 'goodbye']  
df = pd.DataFrame({
'col1':['hello','hi','ciao'],
'col2':['hello panda','goodbye','bonjour'],
'col3':['ni hao','hola','hello']})

私は以下のようなものを使用しますが、列の実際の名前を取得する方法がわからないてきました。ありがとう!

mask = df.applymap(lambda x: word in str(word).lower())
temp = df[mask.any(axis=1)].copy() 

データフレームの表形式の可視化

YOLO:

ここで行うための方法があります:

d = []

for k in key_words_to_search:
    print(k)
    i = df.applymap(lambda x: k in x)
    i = i.astype(int).mask(i, i.columns.to_series(), axis=1).astype(str).agg(lambda x: ','.join(i for i in x if not i.isdigit()), 1)
    d.append(i)

df[['hello','goodbye']] = pd.concat(d, axis=1)

print(df)

          col1         col2    col3      hello goodbye
0        hello  hello panda  ni hao  col1,col2        
1  hello panda      goodbye    hola       col1    col2
2       ni hao      goodbye   hello       col3    col2

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=8247&siteId=1