使用Python Pandas移除CSV文件size列值中的逗号——replace方法未生效求解
解决Pandas中移除CSV列内逗号的问题
问题分析
你遇到的问题根源在于:Pandas的Series.replace()方法默认是匹配整个单元格的完整值来做替换,而不是替换字符串里的子字符。你之前试的几种写法,比如df['size'].replace(",", ""),只会把那些值完全等于逗号的单元格替换成空——但你的size列里全是带逗号的长字符串,所以根本不会触发替换操作。
正确解法
要针对单元格内的子串做替换,得用Pandas Series专属的str.replace()方法,它专门处理字符串类型的列,能对每个单元格里的字符串执行子串替换:
import pandas as pd # 读取目标CSV文件 df = pd.read_csv("file.csv") # 对size列的每个字符串,替换掉所有逗号 df['size'] = df['size'].str.replace(",", "") # 打印验证处理后的size列 print(df['size']) # 预期输出: # 0 932123 # 1 100000 # 2 1032111 # Name: size, dtype: object # 如果需要将处理后的数据保存回新CSV df.to_csv("processed_file.csv", index=False)
额外提示
- 如果你的
size列被Pandas识别成了非字符串类型(不过带逗号的数值一般会被默认识别为object类型,也就是字符串),可以先强制转成字符串再处理:df['size'] = df['size'].astype(str).str.replace(",", "") - 要是后续需要把处理后的
size转成数值类型,直接用astype()即可:df['size'] = df['size'].str.replace(",", "").astype(int)
内容的提问来源于stack exchange,提问作者node_analyser
相关产品推荐
相关产品推荐

