亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Pandas 或 SQL 中保留包含非英語單詞的行

在 Pandas 或 SQL 中保留包含非英語單詞的行

瀟瀟雨雨 2021-07-20 17:01:00
我的數據框在 SQL 上看起來像這樣(我可以直接在那里編寫我的查詢,也可以將其導入 Pandas 然后執行):videoId    videoName12234      Racing through the valleys14533      Character Loose14456      ????? ???? 17889      ?????16612      ?? ?????? ????? ?????15580      ???????? ?????????所以我渴望的數據框是這樣的:videoId    videoName 14456      ????? ????  17889      ????? 16612      ?? ?????? ????? ????? 15580      ???????? ?????????我想保留帶有“印地語”和“孟加拉語”字樣的行。無論如何我可以直接從 SQL 或通過在 Pandas 中導入來做到這一點,無論如何都可以。然后我想要區分“印地語”和“孟加拉語”。兩個不同的數據幀,如:df_hindi:    videoId     videoName     14456      ????? ????      17889      ?????df_bengali:videoId    videoName16612      ?? ?????? ????? ?????15580      ???????? ?????????正如我所說,任何方法都可以,但 Pandas 和 Python 更可取。
查看完整描述

2 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

查找字體范圍,印地語(梵文)似乎是U+0900–U+097F和孟加拉語U+0980–U+09FF。


chars_hindi = [chr(c) for c in range(0x0900, 0x097f)]

chars_bengali = [chr(c) for c in range(0x0980, 0x09ff)]

使用交替通過正則表達式過濾掉數據幀為您提供所需的輸出:


df_hindi = df[df.videoName.str.contains('|'.join(chars_hindi))]

df_bengali = df[df.videoName.str.contains('|'.join(chars_bengali))]

雖然被警告,這只能給出的假設,每一個videoName也只包含無論是印地文和梵文。如果您的數據不能滿足該假設,那么您必須以另一種方式解決您的問題。


查看完整回答
反對 回復 2021-07-28
  • 2 回答
  • 0 關注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號