基本上,我有一个熊猫的数据,其中列是一串日期。我希望将每个值转换为datetime,以便以后可以在那里查找特定的值,如下所示:
df = pd.DataFrame({'DATESTAMP': ['01/01/2017','02/01/2017','03/01/2017']})
df['DATESTAMP2']=pd.to_datetime(df['DATESTAMP'])
date = datetime.strptime('02/01/2017', '%d/%m/%Y')
date in df['DATESTAMP2']
False
正如您所看到的,它没有检测到日期。我检查了原因,发现新的DATESTAMP2
列的格式是
df['DATESTAMP2']
Out[296]:
0 2017-01-01
1 2017-01-02
2 2017-01-03
Name: DATESTAMP2, dtype: datetime64[ns]
df['DATESTAMP2'][2]
Out[279]: Timestamp('2017-01-03 00:00:00')
这不是日期时间,而是时间戳,它不能与date
变量进行比较,这是有意义的。
有没有解决这个问题的方法,也就是将列转换为日期时间而不是时间戳?
发布于 2020-11-23 13:54:33
两个问题:
in
操作符没有做您期望的事情。它看的是索引,而不是值。通常您只使用.values
,但是对于通常不起作用的日期,您需要使用to_list()
。以下是上下文中的两个变化。注:将格式添加到to_datetime()
以处理1)和to_list()
处理2)
import pandas as pd
from datetime import datetime
df = pd.DataFrame({'DATESTAMP': ['01/01/2017','02/01/2017','03/01/2017']})
df['DATESTAMP2']=pd.to_datetime(df['DATESTAMP'], format='%d/%m/%Y')
date = datetime.strptime('02/01/2017', '%d/%m/%Y')
print(date in df['DATESTAMP2'].to_list())
时间戳与日期时间无关。来自时间戳文档
时间戳相当于python的日期时间,在大多数情况下都可以与之互换。
https://stackoverflow.com/questions/64976883
复制相似问题