首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas DF :如何将'-‘替换为带有分隔符的'_’(;CSV格式)

Pandas DF :如何将'-‘替换为带有分隔符的'_’(;CSV格式)
EN

Stack Overflow用户
提问于 2019-03-12 01:27:42
回答 5查看 216关注 0票数 1

我需要正则表达式和正则表达式函数的帮助!我有一个用';‘分隔的CSV文件,需要替换为_。数据如下所示:

代码语言:javascript
复制
79             80;0;RueSaint_Hilaire;Locale;15-25;1;1             
80              81;0;RueSaint_Hilaire;Locale;5-10;5;5             
81                   82;0;RueTaillon;Locale;10-15;1;1             
82                   83;0;RueTanguay;Locale;10-15;2;2             
83                   84;0;RueTanguay;Locale;15-25;2;2             
84                    85;0;RueTanguay;Locale;5-10;3;3  

例如,我需要将15-25替换为15_25。

到目前为止,我已经尝试过了:

代码语言:javascript
复制
df.replace('-','_', inplace=True)

或者这样:

代码语言:javascript
复制
df_obj = df.select_dtypes(['object'])
df[df_obj.columns] = df_obj.apply(lambda x: x.str.strip())
df.replace('-','_', inplace=True)
print(df)

没有任何成功。任何正则表达式或替换向导都可以解决这个小问题?

非常感谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-03-12 02:11:08

这是我能想到的最简单的实现:

代码语言:javascript
复制
with open(<PATH TO FILE>, 'r') as fileIn:
    data = fileIn.read()
    print("\nOriginal data: \n", data)
    data = data.replace('-', '_')
    print("Modified data: \n", data)

这给出了:

代码语言:javascript
复制
Original data:
80,0,RueSaint-Hilaire,Locale,15-25,1,1
81,0,RueSaint-Hilaire,Locale,10-May,5,5

Modified data:
80,0,RueSaint_Hilaire,Locale,15_25,1,1
81,0,RueSaint_Hilaire,Locale,10_May,5,5
票数 2
EN

Stack Overflow用户

发布于 2019-03-12 01:39:06

默认情况下为regex=False。因此,在您现有代码中,使用正则表达式替换为regex=Trueinplace=True。请参阅replace

代码语言:javascript
复制
df.replace('-', '_',regex=True, inplace=True)
print(df)
票数 3
EN

Stack Overflow用户

发布于 2019-03-12 01:37:18

通常,我会这样做:

代码语言:javascript
复制
df['Col'] = df['Col'].str.replace('-', '_')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55107308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档