如何过滤Pandas中第一个出现的中文字符并将其放入另一列

2024-05-15 14:13:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧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熊猫中做到这一点


Tags: communityidcityengcenterreviews山谷taiwan
2条回答

如有必要,使用^{}all chinese chars并将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              

使用^{}并传递mandarin range的正则表达式:

In[14]:
df['mandarin_char'] = df['eng_mand'].str.findall('[\u4e00-\u9fff]+').str[0]
df

Out[14]: 
   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           NaN

如果需要,可以对结果调用fillna('')来替换NaN。你知道吗

相关问题 更多 >