首页 > 解决方案 > 如何从熊猫的列中过滤第一次出现的普通话字符并将其放入另一列

问题描述

我有一个数据框df

import pandas as pd
df = pd.DataFrame({"ID": [1,2,3,4,5],
           "eng_mand" :["後山 4.7·3 reviews Community Center 竹杉園休閒農場",
                        "Taipei City 台北市Taiwan",
                        "綠山谷海芋園餐廳 3.8·52 reviews",
                        "名陽匍休閒農莊minyangpu大賞園",
                        "Menghuanhu"]})

看起来像:

   ID                                   eng_mand
0   1  後山 4.7·3 reviews Community Center 竹杉園休閒農場
1   2                      Taipei City 台北市Taiwan
2   3                    綠山谷海芋園餐廳 3.8·52 reviews
3   4                        名陽匍休閒農莊minyangpu大賞園
4   5                                 Menghuanhu

我想从列中过滤第一次出现的普通话字符,eng_mand并将其放在另一列中。我的mandarin_char最终输出必须如下所示:

   ID                                   eng_mand             mandarin_char          
0   1  後山 4.7·3 reviews Community Center 竹杉園休閒農場        後山
1   2                      Taipei City 台北市Taiwan             台北市
2   3                    綠山谷海芋園餐廳 3.8·52 reviews         綠山谷海芋園餐廳
3   4                        名陽匍休閒農莊minyangpu大賞園       名陽匍休閒農莊
4   5                                 Menghuanhu

我怎么能在 python 中做到这一点 - 熊猫

标签: pythonpandaschinese-locale

解决方案


如有必要,使用str.extract所有中文字符并添加fillnafor replace到空字符串:NaN

df['mandarin_char'] = df['eng_mand'].str.extract(r'([\u4e00-\u9fff]+)').fillna('')
print (df)
   ID                                   eng_mand mandarin_char
0   1  後山 4.7·3 reviews Community Center 竹杉園休閒農場            後山
1   2                      Taipei City 台北市Taiwan           台北市
2   3                    綠山谷海芋園餐廳 3.8·52 reviews      綠山谷海芋園餐廳
3   4                        名陽匍休閒農莊minyangpu大賞園       名陽匍休閒農莊
4   5                                 Menghuanhu              

推荐阅读