【问题标题】:pandas timestamp series to string?熊猫时间戳系列到字符串?
【发布时间】:2017-11-28 05:21:42
【问题描述】:

我是 python 新手(来自 R),我试图了解如何将 pandas 数据帧中的时间戳系列(在我的情况下称为 df['timestamp'])转换为我称之为字符串向量的内容在 R. 这可能吗?这将如何实现?

我尝试了df['timestamp'].apply('str'),但这似乎只是将整列df['timestamp'] 放入一个长字符串中。我希望将每个元素转换为字符串并保留结构,以便它仍然是一个向量(或者这可能是一个称为数组?)

【问题讨论】:

  • 这是您要找的吗? df['timestamp'].apply(lambda x: x.strftime(%Y-%m-%d %H:%M:%S))

标签: python arrays pandas vector


【解决方案1】:

考虑数据框df

df = pd.DataFrame(dict(timestamp=pd.to_datetime(['2000-01-01'])))

df

   timestamp
0 2000-01-01

使用日期时间访问器dt 访问strftime 方法。您可以将格式字符串传递给strftime,它将返回一个格式化字符串。当与dt 访问器一起使用时,您将获得一系列字符串。

df.timestamp.dt.strftime('%Y-%m-%d')

0    2000-01-01
Name: timestamp, dtype: object

访问strftime.org 获取一组方便的格式字符串。

【讨论】:

  • dtdatetime 访问器。只要您的列值是时间戳或时间增量,Pandas 就会使 dt 访问器可用。通过该访问器,您可以使用许多其他特定于日期时间的方法。在这种情况下,我使用了strftime
  • 不,我没有导入 datetime 模块。
  • pandas.Timestamp.strftime 是否支持strftime.org 上列出的所有指令?
  • AttributeError: 'DataFrame' object has no attribute 'timestamp'
  • timestamp 是我给出的示例中的列名。改为使用列的名称
【解决方案2】:

使用astype

>>> import pandas as pd
>>> df = pd.to_datetime(pd.Series(['Jul 31, 2009', '2010-01-10', None])) 
>>> df.astype(str)
0    2009-07-31
1    2010-01-10
2           NaT
dtype: object

返回一个字符串数组

【讨论】:

    【解决方案3】:

    按照 VinceP 的回答,要就地转换日期时间系列,请执行以下操作:

    df['Column_name']=df['Column_name'].astype(str)

    【讨论】:

      猜你喜欢
      • 2015-07-19
      • 2021-08-13
      • 2021-10-16
      • 2022-08-18
      • 2019-06-08
      • 2020-12-06
      • 1970-01-01
      • 2021-01-06
      相关资源
      最近更新 更多