从datafram中的列中筛选除英文字符以外的所有字符

2024-05-15 02:18:28 发布

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

我有一个熊猫数据帧,df

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

看起来像:

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

我想从eng_mand列中取出除英文字符以外的所有字符,并将其放入另一列new_col

输出应如下所示:

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

我怎样才能在熊猫身上做到这一点


Tags: communityidcityengcenterreviews山谷taiwan
2条回答

使用^{},但也包括所有特殊字符,如重音符号,如"éòàç"等:

regex = "[^\d\W⺀-⺙⺛-⻳⼀-⿕々〇〡-〩〸-〺〻㐀-䶵一-鿃豈-鶴侮-頻並-龎]"
df["new"] = df["eng_mand"].str.replace(regex, "")

结果是:

0    後山 73   竹杉園休閒農場
1              42台北市
2           綠山谷海芋園餐廳
3       名陽匍65休閒農莊大賞園
4                   

使用^{}

df['new'] = df['eng_mand'].str.replace('[a-zA-Z]', '')
print (df)
  ID                               eng_mand              new
0   1  後山 73reviews Community Center 竹杉園休閒農場  後山 73   竹杉園休閒農場
1   2                Taipei City 42台北市Taiwan            42台北市
2   3                        綠山谷海芋園餐廳reviews         綠山谷海芋園餐廳
3   4                  名陽匍65休閒農莊minyangpu大賞園     名陽匍65休閒農莊大賞園
4   5                             Menghuanhu                 

相关问题 更多 >

    热门问题