Pandas时间戳序列转换为字符串?

39

我是Python新手(来自R语言),我正在尝试理解如何将pandas数据框中的时间戳序列(在我的情况下称为df['timestamp'])转换为我在R中称为字符串向量。这可能吗?应该如何实现?

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


1
这是你在寻找的吗? df ['timestamp'] .apply(lambda x:x.strftime(%Y-%m-%d%H:%M:%S)) - geo
3个回答

53

考虑数据框 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,获得一组方便的格式字符串。


1
dtdatetime 访问器。每当您的列值是时间戳或时间差时,Pandas 就会提供 dt 访问器。通过该访问器,您可以使用许多其他特定于日期时间的方法。在这种情况下,我使用了 strftime 方法。 - piRSquared
不,我没有导入datetime模块。 - piRSquared
pandas.Timestamp.strftime是否支持http://strftime.org上列出的所有指令? - quant_dev
1
AttributeError: 'DataFrame' object has no attribute 'timestamp' - huang
时间戳是我所举例的列名。请使用该名称作为您的列名。 - piRSquared

14

使用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

返回一个字符串数组


5

继续VinceP的回答,要在原地将datetime Series转换,请按照以下步骤操作:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接