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

如何替换Pandas DataFrame列值并将日期列转换为整数格式?

嘿,我来帮你搞定这两个Pandas数据处理的问题,都是日常干活经常碰到的场景,直接上实用方案:

1. 如何替换Pandas DataFrame中某一列的数值?

这个需求分好几种情况,我给你列最常用的几种:

  • 替换单个特定值
    比如你想把列score里的所有0都换成90,直接用replace方法就行:
df['score'] = df['score'].replace(0, 90)

如果要同时操作多列或者更明确指定列,也可以用字典映射的写法,加inplace=True就能直接修改原DataFrame:

df.replace({'score': {0: 90}}, inplace=True)
  • 替换多个不同的值
    比如列status里的'待审核'要换成0,'已通过'换成1,用字典映射最直观:
df['status'] = df['status'].replace({'待审核': 0, '已通过': 1})

也可以用两个列表对应替换,适合值比较多的场景:

df['status'] = df['status'].replace(['待审核', '已通过', '已驳回'], [0, 1, 2])
  • 基于条件替换特定值
    比如列age里大于60的值都标记为'老年',其他为'成年',用loc或者numpy.where都可以:
    用loc的写法:
df.loc[df['age'] > 60, 'age'] = '老年'
df.loc[df['age'] <= 60, 'age'] = '成年'

用numpy.where更简洁(记得先导入numpy):

import numpy as np
df['age'] = np.where(df['age'] > 60, '老年', '成年')
2. 将DataFrame的date列(字符串格式日期)转为整数格式(如20180201)

你的date列是'2018-02-01'这种标准字符串格式,有两种高效方法:

  • 方法一:先转datetime再格式化(兼容性更强)
    如果你的date列可能存在不标准的日期格式,先转成datetime类型再处理更稳妥:
import pandas as pd
# 第一步:把字符串转为datetime类型(如果还没转的话)
df['date'] = pd.to_datetime(df['date'])
# 第二步:格式化为无分隔符的字符串,再转成整数
df['date_int'] = df['date'].dt.strftime('%Y%m%d').astype(int)

要是不需要保留原date列,直接覆盖就行:df['date'] = df['date'].dt.strftime('%Y%m%d').astype(int)

  • 方法二:直接字符串替换(速度更快)
    如果你的date列已经是严格的'YYYY-MM-DD'格式,直接去掉横杠再转整数,比转datetime快不少,适合大数据量:
df['date_int'] = df['date'].str.replace('-', '').astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:04:19