我是Python新手(来自R语言),我正在尝试理解如何将pandas数据框中的时间戳序列(在我的情况下称为df['timestamp']
)转换为我在R中称为字符串向量。这可能吗?应该如何实现?
我尝试了df['timestamp'].apply('str')
,但似乎只是将整个列df['timestamp']
放入一个长字符串中。我想将每个元素转换为字符串并保留结构,以便它仍然是一个向量(或者也许这被称为数组?)
考虑数据框 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
,获得一组方便的格式字符串。
dt
是 datetime
访问器。每当您的列值是时间戳或时间差时,Pandas 就会提供 dt
访问器。通过该访问器,您可以使用许多其他特定于日期时间的方法。在这种情况下,我使用了 strftime
方法。 - piRSquareddatetime
模块。 - piRSquaredpandas.Timestamp.strftime
是否支持http://strftime.org上列出的所有指令? - quant_devAttributeError: 'DataFrame' object has no attribute 'timestamp'
- huang使用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
返回一个字符串数组
继续VinceP的回答,要在原地将datetime Series转换,请按照以下步骤操作:
df['Column_name']=df['Column_name'].astype(str)
df ['timestamp'] .apply(lambda x:x.strftime(%Y-%m-%d%H:%M:%S))
- geo