去除Pandas体内的汉语

2024-10-01 09:31:12 发布

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

我试图从csv中删除所有的中文字符,包括拉丁和中文字符。数据看起来像:

    address                                                 lat
1   农工商超市, Zhangjiang, Pudong New District, 203718       31.204024
2   欧尚, 3057号, Jinke Road, Pudong, 201203, China          31.181804

我需要它看起来像:

^{pr2}$

我试过使用df.replace(/[^\x00-\x7F]/g, "")df.replace(/[\u{0080}-\u{FFFF}]/gu,""),但得到错误:

    df1.replace([^\x00-\x7F],"");
                 ^
SyntaxError: invalid syntax

需要帮助!谢谢


Tags: csv数据dfnewaddress字符replacelat
3条回答

如果你想限制你的字符集,一个可以说是更健壮的方法是用你想要的编码读入一个file对象,同时忽略错误

with open('your_csv_file.csv', encoding='ascii', errors='ignore') as infile:
    df = pd.read_csv(infile)

一种方法是将filter与{}一起使用,类似于link

import string
printable = set(string.printable)
df['address'] = df['address'].apply(lambda row: ''.join(filter(lambda x: x in printable, row)))
df

结果:

^{pr2}$

或者使用encode和{}与{}类似于link

df['address'] = df['address'].apply(lambda row: row.encode('ascii',errors='ignore').decode())

你就快到了:

df['address'] = df['address'].str.replace(r'[^\x00-\x7F]+', '')

结果:

^{pr2}$

相关问题 更多 >