我使用下面的代碼刪除下面所有非英文字符:DF.text.replace({r'[^\x00-\x7F]+':''}, regex=True, inplace=True)其中 df 有一個名為 text 的列,其中包含如下文本: texthi what are you saying?okay let me knowsounds great, mikeyok.rightご承知のとおり、殘念ながら悪質な詐欺が増加しているようですのでお気を付けください。\n?Hola miguel! Lamento mucho la confusión cau預期輸出: text hi what are you saying? okay let me know sounds great, mikey ok. right對于我的代碼刪除字符的行 -我想從 df 中完全刪除這些行,這意味著如果它確實替換了任何非英語字符,我想從 df 中完全刪除該行,以避免該行包含 0 個字符或一些在它們之后毫無意義的字符已被上面的代碼更改。
2 回答

神不在的星期二
TA貢獻1963條經驗 獲得超6個贊
您可以使用
df[~df['text'].str.contains(r'[^\x00-\x7F]')]
熊貓測試:
import pandas as pd
df = pd.DataFrame({'text': ['hi what are you saying?', 'ご承知のとおり、殘念ながら悪質な詐欺が増加しているようですのでお気を付けください。'], 'another_col':['demo 1', 'demo 2']})
df[~df['text'].str.contains(r'[^\x00-\x7F]')]
# text another_col
# 0 hi what are you saying? demo 1
筆記:
df['text'].str.contains(r'[^\x00-\x7F]')text查找列中包含 ASCII 字符以外的字符的所有值(這是我們的“掩碼”)
df[~...]只保留那些與正則表達式不匹配的行。

呼如林
TA貢獻1798條經驗 獲得超3個贊
str.contains()返回一系列布爾值,我們可以用它們來索引我們的框架
patternDel?=?"[^\x00-\x7F]" filter?=?df['Event?Name'].str.contains(patternDel)
我傾向于保留我們想要的東西而不是刪除行。由于過濾器代表我們要刪除的內容,因此我們使用 ~ 來獲取所有不匹配的行并保留它們
df?=?df[~filter]
添加回答
舉報
0/150
提交
取消