如何在Pandas中仅对含逗号的列执行指定数据转换操作?
解决方法
- 先定位所有包含逗号的列:通过检查每列的字符串值中是否存在逗号,筛选出需要处理的目标列
- 仅对目标列执行替换逗号并转换为数值的操作,其余列保持原格式不变
完整代码示例:
import pandas as pd # 构造示例DataFrame data = { 'A': ['1,598', '-300'], 'B': [65.79, 46.90], 'C': [79, 90], 'D': ['asdf', 'qwer'] } df = pd.DataFrame(data) # 1. 找出包含逗号的列 target_cols = df.columns[df.apply(lambda col: col.astype(str).str.contains(',').any())] # 2. 仅对目标列执行转换操作 df[target_cols] = df[target_cols].astype(str).apply(lambda x: pd.to_numeric(x.str.replace(',', ''))) print(df)
执行后输出结果:
A B C D 0 1598.0 65.79 79 asdf 1 -300.0 46.90 90 qwer
说明:
df.apply(lambda col: col.astype(str).str.contains(',').any())遍历每一列,检查该列是否存在至少一个包含逗号的值,返回布尔数组- 用
df.columns[]筛选出对应的列名,得到需要处理的目标列列表 - 仅对目标列执行替换逗号和转数值的操作,避免修改其他无需处理的列
内容的提问来源于stack exchange,提问作者ur mom
相关产品推荐
相关产品推荐

