我需要在我的 csv 檔案中找到并洗掉包含反斜杠的行。我試過這個:
df[df["query"].str.contains("\\")==False]
但這會導致錯誤:
sre_constants.error: bogus escape (end of line)
我可以避免這個錯誤的唯一方法是,
df[df["query"].str.contains("\\\\")==False]
但這會為檔案中的所有內容添加一個額外的雙引號,并且不會洗掉該行。
識別包含反斜杠的行然后洗掉該行的運算式是什么?
編輯:這是我正在讀取的示例 csv 檔案:
collection,label,groups,query
Model,general,Mob,WHERE * SAYS ("trying out app"|| "trying out app"|| "trying out app's")
Model,general,Bun,WHERE * SAYS ("bundle"|| "bundles"|| "bundled"|| ""tv package""|| ""internet package""|| ""tv and internet package""|| "internet 2 bundle"|| "internet 2 package"|| "tv 2 bundle"|| "tv 2 package"|| "phone 2 bundle"|| "internet 2 phone"|| "internet 2 tv") AND NOT * SAYS ("\"EEOS|| Internet|| TV & Phone Solutions\""|| "\"EOOS|| Internet|| TV\""|| "\"phone solutions\"")
根據下面的答案,我編輯了我的代碼,現在該行已被洗掉。
data = pd.read_csv('so.csv')
df = pd.DataFrame(data)
df = df[~df["query"].str.contains("\\", regex=False)]
df.to_csv('sores.csv')
但是在結果中,添加了雙引號:
,collection,label,groups,query
0,Model,general,Mob,"WHERE * SAYS (""trying out app""||
""trying out app""|| ""trying out app's"")"
uj5u.com熱心網友回復:
Pandas默認.str.contains使用正則運算式。添加到引數:regex=False
df[~df["query"].str.contains("\\", regex=False)]
另請注意,與其比較,False不如否定結果(~在開始時)
例如:
> df = pd.DataFrame({"query": ['positive: \\', 'negative']})
> df
query
0 positive: \
1 negative
> df[~df['query'].str.contains("\\", regex=False)]
query
1 negative
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/439084.html
上一篇:為什么我找不到這個元素?
