Python使用pandas读写CSV时函数无返回值、文件无法保存问题求助
问题排查与修正方案
核心问题点
- 仅定义了
file_load、save_file两个函数,没有主动调用执行,处理逻辑不会自动运行,所以不会生成结果文件也拿不到返回值 - 字符串替换操作建议显式指定
regex=False,避免pandas默认的正则匹配模式触发不必要的转义问题 inplace=True会直接修改原传入的DataFrame,如果你不需要保留原始读取的df没问题,否则建议在函数内部先做副本处理,避免副作用
修正后可运行的完整代码
import pandas as pd header_col = ['col0','col1','col2','col3','col4','col5','col6','col7','col8','col9'] # 读取原始CSV df = pd.read_csv('myfile_<date>.csv', encoding="ISO-8859-1", sep=';', names=header_col, header=None) def file_load(df): # 处理副本避免修改原数据 processed_df = df.copy() # 显式指定regex=False避免正则匹配问题 processed_df['col1'] = processed_df['col1'].str.replace(';',' ', regex=False) processed_df.drop(columns=['col8', 'col9'], inplace=True) return processed_df def save_file(dataframe): dataframe.to_csv('myfile_<date>_treat.csv' ,sep=';', encoding='utf-8', index=False) # 主动调用函数执行处理+保存逻辑 processed_data = file_load(df) save_file(processed_data) # 可以打印确认处理结果 print(processed_data.head())
验证方法
- 运行后查看当前工作目录下是否生成
myfile_<date>_treat.csv文件 - 打开文件确认col1列的分号已替换为空格,col8、col9列已删除
内容的提问来源于stack exchange,提问作者Felipe
相关产品推荐
相关产品推荐

