首页 > 解决方案 > 如何从 pandas 系列的 datetime64 dtype 更改所有实例的值

问题描述

数据集有一列的日期格式为“DD-MM-YY”。在检查日期列中的年份值时,注意到一些条目被错误地设置为 '12-nov-73' ,应该是 '12-nov-13' 。在数据框中加载数据集后,格式将转换为 datetime64 dtype,其中 '1973' 作为年份之一。如何替换日期列中的所有此类值?

date = df.LAST_RECEIPT_DATE

我将该列提取到一个系列中

date.map(lambda t: t.date().year).unique()

这就是我检查唯一年份值的方式

 date[date.dt.year==1973].map(lambda t:t.replace(year=2013))

这就是我执行替换操作的方式。但是,在将上述行分配到日期时,它不会更新原始系列。如何更新原始列

标签: pythonpandas

解决方案


假设我们有一个df:

df
    date
0   2012-11-12
1   1973-11-12

然后我们可以替换为:

df.date[df.date.dt.year == 1973] = df.date[df.date.dt.year == 1973].map(lambda t: dt.datetime(2012, t.month, t.day))
df

    date
0   2012-11-12
1   2012-11-12

推荐阅读