在 Pandas 或 SQL 中保留包含非英语单词的行

我的数据框在 SQL 上看起来像这样(我可以直接在那里编写我的查询,也可以将其导入 Pandas 然后执行):


videoId    videoName


12234      Racing through the valleys

14533      Character Loose

14456      सूरमा धड़क 

17889      हिचकी

16612      মন তোমাকে ছুঁয়ে দিলাম

15580      ঈশানকোণে বিষন্নতায়

所以我渴望的数据框是这样的:


videoId    videoName


 14456      सूरमा धड़क 

 17889      हिचकी

 16612      মন তোমাকে ছুঁয়ে দিলাম

 15580      ঈশানকোণে বিষন্নতায়

我想保留带有“印地语”和“孟加拉语”字样的行。无论如何我可以直接从 SQL 或通过在 Pandas 中导入来做到这一点,无论如何都可以。


然后我想要区分“印地语”和“孟加拉语”。两个不同的数据帧,如:


df_hindi:


    videoId     videoName


     14456      सूरमा धड़क 

     17889      हिचकी

df_bengali:


videoId    videoName


16612      মন তোমাকে ছুঁয়ে দিলাম

15580      ঈশানকোণে বিষন্নতায়

正如我所说,任何方法都可以,但 Pandas 和 Python 更可取。


潇潇雨雨
浏览 148回答 2
2回答

慕慕森

查找字体范围,印地语(梵文)似乎是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也只包含无论是印地文和梵文。如果您的数据不能满足该假设,那么您必须以另一种方式解决您的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python