鱼C论坛

 找回密码
 立即注册
查看: 1933|回复: 2

[已解决]利用正则,调整数据格式问题,请大师帮忙,谢谢

[复制链接]
发表于 2023-5-24 23:36:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
能利用正则,把数据帧里面形如:2.18/2.13/2.14/1.1196/15873.68数据,转化成2.18,2.13,2.14,1.1196,15873.68,即把反斜杠转变成逗号,
请大师帮忙,谢谢
最佳答案
2023-5-24 23:39:36
本帖最后由 isdkz 于 2023-5-24 23:43 编辑

如果你的数据存在一个Pandas DataFrame中,那么你可以利用Pandas提供的 .replace() 函数来进行这种替换操作。这个函数可以在整个DataFrame中搜索和替换字符串。

如果你的DataFrame只有一列需要处理,你可以这样做:
import pandas as pd

# 假设你的DataFrame如下:
df = pd.DataFrame({
    'A': ['2.18/2.13/2.14/1.1196/15873.68', '3.14/2.72/1.62/1.414/15926.37'],
    'B': ['Hello', 'World']
})

# 使用 replace 方法替换列 A 中的 "/" 为 ","
df['A'] = df['A'].str.replace('/', ',')

print(df)

如果你的DataFrame有多列都需要处理,那么你可以这样做:
import pandas as pd

# 假设你的DataFrame如下:
df = pd.DataFrame({
    'A': ['2.18/2.13/2.14/1.1196/15873.68', '3.14/2.72/1.62/1.414/15926.37'],
    'B': ['5.28/3.14/2.18/1.732/15853.57', '6.28/3.14/2.18/1.732/15843.67']
})

# 使用 replace 方法替换所有列中的 "/" 为 ","
df = df.replace('/', ',', regex=True)

print(df)

这里使用了正则表达式(regex),因为 replace 函数默认会尝试匹配整个字符串,而正则表达式可以让我们只匹配到我们想要替换的部分。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-24 23:36:53 | 显示全部楼层
可以使用正则表达式和Python中的re模块来实现该功能。以下是代码示例:
import redata = "2.18/2.13/2.14/1.1196/15873.68"pattern = re.compile(r"/")result = pattern.sub(",", data)print(result)
输出结果为:2.18,2.13,2.14,1.1196,15873.68

在代码中,首先定义了一个正则表达式模式,用于匹配反斜杠字符。然后使用re模块中的sub()函数,将反斜杠替换为逗号,得到最终的结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-24 23:39:36 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2023-5-24 23:43 编辑

如果你的数据存在一个Pandas DataFrame中,那么你可以利用Pandas提供的 .replace() 函数来进行这种替换操作。这个函数可以在整个DataFrame中搜索和替换字符串。

如果你的DataFrame只有一列需要处理,你可以这样做:
import pandas as pd

# 假设你的DataFrame如下:
df = pd.DataFrame({
    'A': ['2.18/2.13/2.14/1.1196/15873.68', '3.14/2.72/1.62/1.414/15926.37'],
    'B': ['Hello', 'World']
})

# 使用 replace 方法替换列 A 中的 "/" 为 ","
df['A'] = df['A'].str.replace('/', ',')

print(df)

如果你的DataFrame有多列都需要处理,那么你可以这样做:
import pandas as pd

# 假设你的DataFrame如下:
df = pd.DataFrame({
    'A': ['2.18/2.13/2.14/1.1196/15873.68', '3.14/2.72/1.62/1.414/15926.37'],
    'B': ['5.28/3.14/2.18/1.732/15853.57', '6.28/3.14/2.18/1.732/15843.67']
})

# 使用 replace 方法替换所有列中的 "/" 为 ","
df = df.replace('/', ',', regex=True)

print(df)

这里使用了正则表达式(regex),因为 replace 函数默认会尝试匹配整个字符串,而正则表达式可以让我们只匹配到我们想要替换的部分。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 13:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表