Python 去除熊猫身上的中国元素
我正在尝试从csv中删除所有包含拉丁和中文字符的汉字。数据如下所示:Python 去除熊猫身上的中国元素,python,string,pandas,dataframe,replace,Python,String,Pandas,Dataframe,Replace,我正在尝试从csv中删除所有包含拉丁和中文字符的汉字。数据如下所示: address lat 1 农工商超市, Zhangjiang, Pudong New District, 203718 31.204024 2 欧尚, 3057号, Jinke Road, Pudong, 201203, China 31.181804 我需要它看起来像: a
address lat
1 农工商超市, Zhangjiang, Pudong New District, 203718 31.204024
2 欧尚, 3057号, Jinke Road, Pudong, 201203, China 31.181804
我需要它看起来像:
address lat
1 , Zhangjiang, Pudong New District, 203718 31.204024
2 , 3057, Jinke Road, Pudong, 201203, China 31.181804
我尝试了df.replace(/[^\x00-\x7F]/g,”)
和df.replace(/[\u{0080}-\u{FFFF}]/gu,””)
但我得到了错误:
df1.replace([^\x00-\x7F],"");
^
SyntaxError: invalid syntax
需要帮助!谢谢你就快到了:
df['address'] = df['address'].str.replace(r'[^\x00-\x7F]+', '')
结果:
In [99]: df
Out[99]:
address lat
0 , Zhangjiang, Pudong New District, 203718 31.204024
1 , 3057, Jinke Road, Pudong, 201203, China 31.181804
一种方法也可以是将
过滤器
与字符串一起使用。可打印
,如下所示:
结果:
address lat
1 , Zhangjiang, Pudong New District, 203718 31.204024
2 , 3057, Jinke Road, Pudong, 201203, China 31.181804
或者使用encode
和decode
与lambda
类似
如果您想限制字符集,一种更可靠的方法是在忽略错误的同时,使用您想要的编码读入文件对象
with open('your_csv_file.csv', encoding='ascii', errors='ignore') as infile:
df = pd.read_csv(infile)
你似乎忘记了字符串文字分隔符…为什么要使用Javascript语法regex?我发誓我读到的主题是“移除中国熊猫”。。。
df['address'] = df['address'].apply(lambda row: row.encode('ascii',errors='ignore').decode())
with open('your_csv_file.csv', encoding='ascii', errors='ignore') as infile:
df = pd.read_csv(infile)