現在,我試圖創建一個函數,該函數根據excel文件中列出的某些標準刪除行。這個Excel文件(壞words2)包含應該從DF中被刪除的字對,是這樣的:基於CSV文件刪除DF行(Pandas,Python3)
header
the man
is a
我的代碼的第二部分是我想申請
import pandas as pd
data = ({'words':['the man','is a','good guy']})
df = pd.DataFrame(data)
xl = pd.ExcelFile('C:/Users/j/Desktop/bad words2.xlsx')
badwords = xl.parse()
badwords = badwords['header']
def removewords(x):
for w in x:
pattern = '^'+''.join('(?=.*{})'.format(word) for word in w.split())
df[df['words'].str.contains(pattern)==False]
df.dropna()
print(removewords(badwords))
功能所以,理想情況下,在使用該功能的目的,我應該結束了,只包含DF:
words
good guy
然而,現在,所有的這個函數返回的是「無」。我究竟做錯了什麼?
對不起你只是想過濾掉所有的圖案文字或過濾掉不在模式的話呢?無論如何不清楚你在做什麼,但是這行不做任何事情,沒有賦值:'df [df ['words']。str.contains(pattern)== False]'應該是'df = df [df ['words' ] .str.contains(模式)==假]' – EdChum 2014-09-30 20:04:31