【发布时间】:2018-01-14 01:12:20
【问题描述】:
如果列中的条目包含列表中的单词,我想向我的 python pandas 数据框添加一个标志
对于我们可以使用的任何单独的行
any(word in train['a'][0] for word in words)
我试着做一个图案
import pandas as pd
import numpy as np
words=['photos','pictures', ' pics ', 'pix', 'image']
pattern = '|'.join(words)
train=pd.DataFrame()
train['a']=words
我尝试过包含但没有得到模式
def emb_col_1(tr, te, col, pat, suf):
tr["0_"+col+suf]=0
tr.loc[tr[col].str.contains(pat), "0_"+col+suf] =1
#tr.loc[tr[col].str.count(pat)>0, "0_"+col+suf] =1
#tr.loc[(word in tr[col].str for word in pat), "0_"+col+suf] =1
#tr["0_"+col+suf] = np.where(tr[col].str.contains(pat, case=False, na=False), 1, 0)
#tr["0_"+col+suf] = np.where(any(word in train[col] for word in pat), 1, 0)
emb_col_1(train, test, 'a', words, '_p')
emb_col_1(train, test, 'a', pattern, '_p')
提前谢谢你
【问题讨论】:
-
你在函数末尾使用
return tr吗? -
谢谢,你说得对