替换 pandas.datetime 列中的年份

2023-12-10

我有一个数据框,其中包含使用 pd.to_datetime() 转换的日期列。当我检查数据时,我发现很少有这些日期的年份被提到为 2216 年,这应该是 2016 年。您能帮我将这些日期的年份从 2216 年更改为 2016 年吗

     Date
0   2216-12-21
1   2216-12-23
2   2216-01-31
3   2016-12-23
4   2216-12-27
5   2216-12-25
6   2016-12-23

我尝试使用 str.replace

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

但出现以下错误

 Can only use .str accessor with string values, which use np.object_ dtype in pandas

提前致谢


Use:

df['Date'] = df['Date'].mask(df['Date'].dt.year == 2216, 
                             df['Date'] + pd.offsets.DateOffset(year=2016))
print (df)
        Date
0 2016-12-21
1 2016-12-23
2 2016-01-31
3 2016-12-23
4 2016-12-27
5 2016-12-25
6 2016-12-23

为了获得更好的性能:

df['Date'] = df['Date'].mask(df['Date'].dt.year == 2216, df['Date'] - 
                                                         pd.to_timedelta(200, unit='y') + 
                                                         pd.to_timedelta(12, unit='h'))
print (df)
        Date
0 2016-12-21
1 2016-12-23
2 2016-01-31
3 2016-12-23
4 2016-12-27
5 2016-12-25
6 2016-12-23
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

替换 pandas.datetime 列中的年份 的相关文章

随机推荐

  • 在pykml中读取带有多个地标的kml文件

    In pykml 我可以使用以下代码读取文件中的第一个地标 with open filename as f pm parser parse f getroot Document Folder print got print pm Place
  • 使用 Storyboard 和 Xcode 4.5 的 UIPageViewController

    我想问一些关于 Xcode 4 5 的问题 我正在使用故事板创建应用程序 这个应用程序有UIPageViewController 但是如果我想定义标识符UIViewController在情节提要的 IB 中 已经没有地方了 你能告诉我 我可
  • 如何进行跨站ajax请求?

    浏览器不允许跨站点 AJAX 调用 这是安全限制 有什么可能的解决办法吗 EDIT 我只控制来电者网站 如果你控制双方 那么就有很多选择 例如JSONP or 修改标题远程网站的响应 很遗憾 JSONP 仅在远程网站支持时才有效 你can
  • Opencv:在盒子中找到盒子

    后勤 opencv 2 4 和 Python 2 7 The image I m working with 问题 我感兴趣的是隔离围绕 9 条垂直线和水平线形成盒子的轮廓 我只是不确定该怎么做 我看过各种教程 例如关于数独谜题的教程 这些教
  • 通过引用临时传递函数的生命周期[重复]

    这个问题在这里已经有答案了 我可以做这样的事情 const int i 5 并将临时的生命周期延长到i 但怎么样 const int fun const int i return i int main const int r fun 5 C
  • matplotlib - 更改图大小但保持字体大小不变

    我想显示几个不同大小的图形 确保打印图形时文本始终具有相同的大小 我怎样才能做到这一点 举个例子 假设我有两个数字 import matplotlib pylab as plt import matplotlib as mpl mpl rc
  • Angular 9 通用错误:组件“HeaderComponent”未解析:

    更新到 Angular 9 和 Universal 9 后 运行时出现错误npm run build ssr npm run serve ssr Error Component HeaderComponent is not resolved
  • 疯狂邮件方法不起作用?

    在配置菜单下的 spree 管理面板中 我配置了邮件 smtp 端口等 创建新邮件方法后 我按下测试邮件按钮 我收到以下警报消息 测试邮件发送成功 甚至终端窗口也显示电子邮件发送成功消息 但是邮件未送达相应地址 发送测试邮件后控制台日志 S
  • 将装置转换为 Rails 中的 Factory Girl

    我想将我的装置迁移到 Rails 中的 Factory Girl 有没有简单的方法可以转换factories rb 文件中的所有yml 文件 我假设您想要做的是找到一个脚本来查看您的模型并为它们生成工厂 我尝试过一次 使用除了factory
  • 如何选择最大连接池大小?

  • 如何向彩色图像添加噪声 - Opencv

    我正在尝试向图像添加噪声 然后对其进行降噪以测试我的降噪算法 所以对于基准我指的是这个在线测试样品 我正在尝试复制噪声模型 参考这个线程1 2我正在像这样向图像添加噪点 Mat mSource Bgr mSource Bgr imread
  • 如何在二叉搜索树中迭代添加元素?

    public void Insert int value if value lt Data if LeftNode null LeftNode new TreeNode value else LeftNode Insert value el
  • build.gradle 中的 gradle 任务方法语法

    我是 gradle 和 groovy 的新手 我正在阅读 Gradle 的 usr 指南 并对任务方法有一些语法问题 task intro dependsOn hello doLast println I m Gradle 问题1 上面的代
  • Excel / VBA 通过交叉引用 2 个不同的工作表然后删除 1 行来删除重复行

    我有 2 个单独的工作表 我们称它们为工作表 A 工作表 B 我在工作表 B 中有数据 该数据也在工作表 A 中 我想找到那些相等的行并将它们从工作表 B 中删除 我无法合并两张表并使用过滤器 因为我正在执行动态 SQL 来查询不同的数据
  • 修改现有的通用存储库模式以添加选择

    我想修改现有的通用存储库以添加可选select类似于 Entity Framework Core 中的功能 期望的结果 private readonly IUnitOfWork unit without using select funct
  • htaccess,将所有请求重定向到 https://

    使用 htaccess 我需要重定向来自 https www domain to https domain 假设您在 Apache 配置中启用了 mod rewrite 则您的 htaccess 文件中将需要它 RewriteEngine
  • GCC 上 x86 intel asm 中方括号前的偏移量

    从我找到的所有文档中 没有提到类似的语法offset var offset2 采用 Intel x86 语法 但 GCC 具有以下标志 gcc S hello c o masm intel 对于这个程序 include
  • Spring Boot REST Api 中的一对多关系

    我正在使用 Spring Boot 创建 REST API 在此 API 中 我之间有一对多关系check in and Guests 我创建了一个用于签入的控制器并使用 spring JPA 的保存功能 保存方法正在更新两者checkin
  • AMSupportURLConnectionDelegate 类在两者中均实现

    我正在尝试在 M1 mac 上构建一个 flutter 应用程序并收到以下错误 flutter build ios release Building XXX for device ios release Automatically sign
  • 替换 pandas.datetime 列中的年份

    我有一个数据框 其中包含使用 pd to datetime 转换的日期列 当我检查数据时 我发现很少有这些日期的年份被提到为 2216 年 这应该是 2016 年 您能帮我将这些日期的年份从 2216 年更改为 2016 年吗 Date 0