我有一列是 unix 时间戳。我想将此列转换为 %y-%m-%d
格式的日期。只是为了测试 to_datetime()
函数,我做了下面的操作,它按预期工作并以这样的格式为我提供了列 2015-05-12 00:11:30
:
df['time'] = pd.to_datetime(df['time'], unit='s')
当我像下面这样添加 format
参数时,出现错误:
df['time'] = pd.to_datetime(df['time'], unit='s', format='%d/%m/%Y')
错误是ValueError: time data 1431389490 does not match format '%d/%m/%Y'
如何去掉小时、分钟和秒,只剩下 2014-05-12?
最佳答案
如果只想提取日期,可以在转换为日期时间后的第二步中执行此操作:
x = pd.to_datetime(pd.Series([1431389490]), unit='s')
# Datetime columns have a `.dt` attribute, with useful properties
# and methods for working with dates
x.dt.date
Out[7]:
0 2015-05-12
dtype: object
这将丢弃有关小时和分钟的信息,但您将能够轻松地使用结果列/系列,因为结果是 datetime.date
对象,例如减去您的列和特定日期之间的天数。
如果您想保留有关小时和分钟的信息,但只是以不同的方式显示,我不确定这是否可行。
关于python - pandas to_datetime 函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30519217/