使用 pandas 中的日期 - 删除日期时间中看不见的字符并转换为字符串

2024-01-29

我正在使用 pandas 导入数据dfST = read_csv( ... , parse_dates={'timestamp':[date]})在我的 csv 中,日期的格式为 YYY/MM/DD,这就是我所需要的 - 没有时间。我有几个数据集需要比较成员资格。当我将这些“时间戳”转换为字符串时,有时我会得到这样的结果:

'1977-07-31T00:00:00.000000000Z'

我理解是一个包含毫秒和时区的日期时间。有什么办法可以抑制导入时额外时间的增加吗?如果没有,我需要以某种方式排除它。

dfST.timestamp[1]
Out[138]: Timestamp('1977-07-31 00:00:00')

我尝试对其进行格式化,这似乎有效,直到我调用格式化值:

dfSTdate=pd.to_datetime(dfST.timestamp, format="%Y-%m-%d")  
dfSTdate.head()
Out[123]: 
0   1977-07-31
1   1977-07-31
Name: timestamp, dtype: datetime64[ns]

但是不......当我测试它的价值时,我也得到了时间:

dfSTdate[1]
Out[124]: Timestamp('1977-07-31 00:00:00')

当我将其转换为数组时,时间包含在毫秒和时区中,这确实让我的比较变得混乱。

test97=np.array(dfSTdate)
test97[1]
Out[136]: numpy.datetime64('1977-07-30T20:00:00.000000000-0400')

我怎样才能摆脱时间?!? 最终我希望使用比较数据集之间的成员资格numpy.in1d将日期作为字符串 ('YYYY-MM-DD') 作为比较的一部分


这是由于方法datetime值存储在 pandas 中:使用 numpydatetime64[ns]数据类型。所以日期时间值总是stored纳秒分辨率。即使您只有一个日期,它也会转换为纳秒分辨率为零的时间戳。这只是由于 pandas 中的实现所致。

打印值和出现意外结果时遇到的问题只是因为这些对象在 python 控制台中的打印方式(它们的表示形式),而不是它们的实际值。
如果打印单个值,您会得到Timestamp熊猫的代表:

Timestamp('1977-07-31 00:00:00')

所以你也可以在这里得到秒,因为这是默认的表示形式。
如果将其转换为数组,然后打印它,您将得到标准的 numpy 表示形式:

numpy.datetime64('1977-07-30T20:00:00.000000000-0400')

这确实是一个非常具有误导性的表述。因为 numpy 会将其转换为您的本地时区,只是为了在控制台中打印它。但这并不会改变你的实际值,它只是奇怪的打印。


这就是背景,现在回答你的问题,我如何摆脱时间?
这取决于你的目标。您真的想将其转换为字符串吗?或者你只是不喜欢这个代表?

  • 如果您只想使用日期时间值,您不需要摆脱它。

  • 如果你想将其转换为字符串,你可以应用strfitme (df['timestamp'].apply(lambda x: x.strftime('%Y-%m-%d')))。或者,如果要将其作为字符串写入 csv,请使用date_format关键字在to_csv

  • 如果你真的想要一个“约会”,你可以使用datetime.dateDataFrame 列中的类型(标准 python 类型)。您可以使用以下命令将现有列转换为此:pd.DatetimeIndex(dfST['timestamp']).date。但我个人认为这并没有太多优点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pandas 中的日期 - 删除日期时间中看不见的字符并转换为字符串 的相关文章

随机推荐

  • 在 .net MVC 中渲染列表的子列表

    我仍在学习 net MVC 也许没有正确搜索我需要找到解决方案的内容 简而言之 我在数据库中有一个表 其结构如下 ID Category Subcategory FK 所以每个类别可能会出现多次 每个子类别也是如此 这是该类别所独有的 我想
  • 想要在我的按钮单击事件上使用 ajax 多个文件上传

    这是我的 aspx 页面代码
  • 锚链接着陆位置错误

    可能是一个愚蠢的问题 但老实说我无法理解这里出了什么问题 http harrisonfjord com thinkinc http harrisonfjord com thinkinc 我目前正在建设的网站 我想在以下位置创建一个锚链接ht
  • iOS 11 上的编程式 begin Refreshing() 在使用 largeTitles 模式时存在问题

    我们发现 UIKit 中似乎有一个错误 但想在这里发帖看看其他人是否也遇到这个问题或找到解决方案 我们正在尝试使用新的 iOS11 大标题和提升的搜索栏 刷新控件 我们似乎发现了一个问题 导航堆栈的根视图控制器显示了一个小显示问题 问题 A
  • Python 初学者。这段 Python 代码是否尽可能高效?

    这个问题 解决方案让我想到了另一个相关问题here https stackoverflow com questions 4997859 calculate a running total during a for loop python 帮
  • 通过axios访问响应头

    我正在使用 Axios 对 API 进行安全的 POST 调用 这会在 位置 下的响应标头中返回一个 URL 我可以看到 Chrome 的开发工具中填充了 URL 但 Axios 的 JS 响应 如下 不包含以下信息 任何建议都非常收到 发
  • 为什么不能使用 ioremap 然后使用 remap_pfn_range?

    在我的驱动程序中 我试图映射从返回的地址ioremap到用户空间地址 返回什么样的地址ioremap 它与一个有什么不同kmalloc地址 如何映射从返回的地址ioremap 应插入哪个地址remap pfn range 你不需要iorem
  • QItemDelegate 和 QStyledItemDelegate 有什么区别?

    这两个类都为模型中的数据项提供显示和编辑功能 QStyledItemDelegate较新 Qt 文档关于QItemDelegate指出 请注意 QStyledItemDelegate 已经接管了绘制 Qt 的工作 项目视图 我们建议在创建时
  • YQL JSON 脚本未返回?

    我这里有一个脚本 几乎直接复制下来this http net tutsplus com tutorials javascript ajax quick tip cross domain ajax request with yql and j
  • 在 Matlab R2016b 中恢复旧的显示格式

    在 Matlab R2016b 中 显示某些数据类型的变量会显示有关该类型的信息 当通过键入不带最后分号的方式显示变量时会发生这种情况 使用disp功能 比较例如 Matlab R2015b 旧格式 仅显示数据 gt gt x 10 20
  • 在 C 中将一定数量的字符打印到 stdout 的最快方法

    我必须将一定数量的空格打印到标准输出 但这个数量不是固定的 我正在使用 putchar 但我不确定这是否很快 在 C 中将一定数量的字符打印到 stdout 的最快方法是什么 另外 我无法使用系统功能 谢谢你的帮助 我只想用fwrite 简
  • 内存非常有限的嵌入式系统中的 STL

    我目前正在构建一个嵌入式系统 使用 ARM Cortex M3 处理器和 64 KB SRAM 目前 我正在寻找一种方法来确保 STL 容器的确定性性能 其中包括确保我不会在运行时耗尽内存 我主要关心 STL 容器如何执行动态内存分配 尽管
  • 修复 primeng DataTable 中的标题

    我正在使用 PrimeNG4 1 0 rc 2 我想要创建的是具有固定标题的数据表 即使我将表格滚动到底部 就像 stackoverflow 顶部的固定菜单一样 标题也应该始终可见 I tried scrollable and scroll
  • 在 PL/SQL 块中使用单引号和双“单引号”

    这是需要执行的代码块 DECLARE STR CLOB BEGIN STR CREATE TABLE TNAME AS SELECT FROM INPUT TABLE IP WHERE IP DATE FIELD TO DATE 12 08
  • UserPrincipal.GetGroups 与 UserPrincipal.GetAuthorizationGroups?

    我正在使用 ASP Net 4 0 MVC 来查询活动目录 我正在尝试获取用户组成员身份的列表并对其进行迭代 我有一个奇怪的问题 要获取我正在使用的组 PrincipalSearchResult
  • 逐行累积和

    我有一个data table dt如下 df lt data frame t1 rep 0 5 t3 c 12 5 8 9 5 t7 c 25 48 7 9 14 dt lt setDT df dt t1 t3 t7 1 0 12 25 2
  • 将一系列数字生成为字符串 Python

    我需要循环遍历许多具有结构化文件名的文件 它们的形式为 Mar00 sav Sep00 sav Mar01 sav 目前我正在这样做 Years 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
  • Material-ui v4 无法读取每个组件未定义的属性“根”

    我已经迁移自Material UIv3 到 v4 现在我导入的每个组件都会出现此错误 app js 3581 未捕获类型错误 无法读取属性未定义的 根 在按钮 app js 3581 在 renderWithHooks app js 126
  • Angular JS在每个http请求上添加请求参数$http

    我想使用 Angular http 与 api 交互 但我需要将我的身份验证令牌存储到 http 以便在每个请求中 无论 post get put 删除 我希望令牌存在 我也看到人们放置标头中的令牌 我知道如何将其放入标头中 但我不确定将令
  • 使用 pandas 中的日期 - 删除日期时间中看不见的字符并转换为字符串

    我正在使用 pandas 导入数据dfST read csv parse dates timestamp date 在我的 csv 中 日期的格式为 YYY MM DD 这就是我所需要的 没有时间 我有几个数据集需要比较成员资格 当我将这些