Pandas中replace函数仅匹配整串不替换子串问题求助
解决DataFrame中所有字符串的逗号替换为句号的问题
你的问题出在pandas.DataFrame.replace的默认行为上:当regex=False(默认值)时,该方法只会替换完全匹配第一个参数的单元格,而非单元格内的子串。要实现所有字符串中的逗号替换为句号,有两种简单的解决方式:
方法1:启用正则匹配修改replace参数
直接在replace方法中添加regex=True,让pandas将逗号视为子串匹配而非全单元格匹配:
import pandas as pd fulfill_workbook = 'fulfill 7.csv' df_fulfill = pd.read_csv(fulfill_workbook, sep=';', encoding='latin-1') # 启用regex参数,替换所有子串中的逗号 df_fulfill = df_fulfill.astype(str).replace(',', '.', regex=True) df_fulfill.to_excel('fulfill ready.xlsx')
方法2:使用str.replace针对字符串列操作
通过apply对每一列调用字符串的replace方法,明确针对子串进行替换:
import pandas as pd fulfill_workbook = 'fulfill 7.csv' df_fulfill = pd.read_csv(fulfill_workbook, sep=';', encoding='latin-1') df_fulfill = df_fulfill.astype(str) # 对每个列应用字符串替换 df_fulfill = df_fulfill.apply(lambda col: col.str.replace(',', '.')) df_fulfill.to_excel('fulfill ready.xlsx')
两种方法都能实现将所有单元格字符串中的逗号替换为句号,比如把'John, Doe'改成'John. Doe'。
内容的提问来源于stack exchange,提问作者Marius
相关产品推荐
相关产品推荐

