我想比較 2 列。如果相同將 True 如果不相同將 False 像這樣:
| 過濾 | 詞形還原 | 查看 |
|---|---|---|
| [你好,世界] | [你好,世界] | 真的 |
| 【葡萄、榴蓮】 | [蘋果、葡萄] | 錯誤的 |
我的代碼的輸出都是假的。但是,資料實際上是不同的。為什么?
你可以得到我的資料github
import pandas as pd
dc = pd.read_excel('./data clean (spaCy).xlsx')
dc['check'] = dc['filtering'].equals(dc['lemmatization'])
uj5u.com熱心網友回復:
這是列之間的區別 - 在''字串周圍缺少一列中,可能的解決方案是將兩列都轉換為串列,以供 comapre 使用Series.eq(作業方式類似==):
import ast
dc = pd.read_excel('data clean (spaCy).xlsx')
#removed trailing [] and split by ` ,`
dc['filtering'] = dc['filtering'].str.strip('[]').str.split(', ')
#there are string separators, so working literal_eval
dc['lemmatization'] = dc['lemmatization'].apply(ast.literal_eval)
#compare
dc['check'] = dc['filtering'].eq(dc['lemmatization'])
print (dc.head())
label filtering \
0 2 [ppkm, ya]
1 2 [mohon, informasi, pgs, pasar, turi, ppkm, buk...
2 2 [rumah, ppkm]
3 1 [pangkal, penanganan, pandemi, indonesia, terk...
4 1 [ppkm, mikro, anjing]
lemmatization check
0 [ppkm, ya] True
1 [mohon, informasi, pgs, pasar, turi, ppkm, buk... True
2 [rumah, ppkm] True
3 [pangkal, tangan, pandemi, indonesia, kesan, s... False
4 [ppkm, mikro, anjing] True
原因False是Series.equals回傳標量,所以這里False
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369409.html
