You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中将指定列内的空格替换为点号

你的代码问题出在这

  • 你写的str.replace('','.')第一个参数是空字符串,不是空格,执行后会在每个字符之间都插入点,完全不符合需求
  • 直接全表apply会处理所有列,你只需要处理指定列,不需要遍历全部列

可行解决方案

单指定列处理

如果你只需要处理Date这一列,直接执行以下代码即可:

df['Date'] = df['Date'].str.replace(' ', '.')

多指定列批量处理

如果你要同时处理多个列,把需要处理的列名放进列表再操作:

# 替换成你实际要处理的列名列表
target_cols = ['Date', '其他需要处理的列名']
df[target_cols] = df[target_cols].apply(lambda col: col.str.replace(' ', '.'))

特殊场景适配

如果存在连续多个空格要替换成单个点的情况,用正则匹配更稳妥:

# \s+ 匹配任意数量的连续空白字符
df['Date'] = df['Date'].str.replace('\s+', '.', regex=True)

示例验证

用你给出的测试数据跑的完整可执行代码:

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'Date': ['Q1 2022', 'Q2 2022'],
    'id': ['a', 'b']
})

# 执行替换
df['Date'] = df['Date'].str.replace(' ', '.')

# 输出结果
print(df)

运行后输出结果和你预期的完全一致:

Date id
0  Q1.2022  a
1  Q2.2022  b

内容的提问来源于stack exchange,提问作者Lynn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:27:07