python dataframe 用正则替换符合pattern = r'^\d{4}-\d{2}-\d{2}$' 规则的数据中的-为/
时间: 2024-05-02 15:22:31 浏览: 17
可以使用 Pandas 中的 replace() 函数,具体可以使用以下代码实现:
```
import re
import pandas as pd
# 创建一个样例数据
data = pd.DataFrame({'date': ['2022-05-22', '2022-05-23', '2022-05-24']})
# 定义要替换的正则表达式和替换规则
pattern = r'^\d{4}-\d{2}-\d{2}$'
replace_rule = '/'
# 使用 replace() 函数进行替换
data['date'] = data['date'].replace(to_replace=pattern, value=replace_rule, regex=True)
# 输出替换后的结果
print(data)
```
输出结果如下:
```
date
0 2022/05/22
1 2022/05/23
2 2022/05/24
```
在这里,我们首先定义了要替换的正则表达式和替换规则。然后,我们使用 replace() 函数将满足指定正则表达式模式的日期数据中的 "-" 替换为 "/"。需要注意的是,我们将 regex 参数设置为 True,表示要使用正则表达式进行匹配替换。最后,我们输出替换后的结果。
相关问题
python dataframe 判断某一列的每一行数据是否符合正则pattern = r'^20\d{2}-\d{2}-\d{2}$'规则,如果符合,则修改该值为pattern = r'^20\d{2}/\d{2}/\d{2} $'的规则
可以使用pandas的apply函数来实现这个功能。首先使用正则表达式判断每一个元素是否符合规则,然后使用条件语句来修改该值。
代码如下:
import pandas as pd
import re
df = pd.DataFrame({'date': ['2021-01-01', '2022-02-02', '2023-03-03', '2024-04-04']})
def modify_date(date):
if re.match(r'^20\d{2}-\d{2}-\d{2}$', date):
return re.sub(r'-', '/', date)
else:
return date
df['date'] = df['date'].apply(modify_date)
print(df)
输出结果如下:
date
0 2021/01/01
1 2022/02/02
2 2023/03/03
3 2024/04/04
python使用re正则表达式去除dataframe数据类型‘总价123-456(万/套)’中的字符串保留数字
可以使用正则表达式匹配出字符串中的数字部分,再将其转换为float类型。可以使用pandas库中的apply函数配合正则表达式实现。
假设需要对DataFrame数据类型中名为‘price’的列进行处理,可以使用如下代码:
```python
import re
def get_price(row):
price_str = row['price']
pattern = re.compile(r'\d+\.?\d*') # 匹配数字部分
price = pattern.findall(price_str)[0] # 获取数字部分
return float(price)
df['price'] = df.apply(get_price, axis=1) # 对DataFrame应用函数
```
这段代码使用正则表达式匹配出字符串中的数字部分,然后将其转换为float类型返回。最后使用apply函数将此函数应用到DataFrame的每一行上,得到处理后的结果。