我有一个DataFrame,其中包含我使用pd.to_datetime
函数创建的time_stamp列。
date_start | column2 | column3 | column...
2018-09-22 12:30:00 x x x
当我尝试遍历此列时,我无法匹配时间戳。
例如,当我尝试却一无所获时:
for i in df['date_start']:
if i == user_entry:
print('something')
即使用户输入中确实有匹配的值,我也永远不会得到正确的输出。
有谁可以帮忙吗?
答案 0 :(得分:0)
目前尚不清楚user_entry
代表什么,但我相当确定这是类似的东西……请看以下内容:
创建具有日期时间性质的系列:
>>> import pandas as pd
>>> s = pd.Series(['01/01/2018', '01/02/2018', '12/25/2018'])
>>> s = pd.to_datetime(s)
>>> s
0 2018-01-01
1 2018-01-02
2 2018-12-25
dtype: datetime64[ns]
使用input
获取用户条目:
>>> user_entry = input()
01/02/2018
>>> type(user_entry)
<class 'str'>
现在,将user_entry
转换为日期时间对象:
>>> import datetime
>>> user_entry = datetime.datetime.strptime(user_entry, '%m/%d/%Y')
>>> user_entry
datetime.datetime(2018, 1, 2, 0, 0)
继续进行迭代:
>>> for dt in s:
... if dt == user_entry:
... print('Match')
...
Match
答案 1 :(得分:0)
您可以使用熊猫矢量化方法。无需从标准库中引入datetime
模块,因为pd.to_datetime
可用于标量和多种人类可读格式:
import pandas as pd
s = pd.Series(['01/01/2018 12:30:00', '01/02/2018 15:20:12', '12/25/2018 10:45:15'])
s = pd.to_datetime(s)
user_entry = input() # input '2018-01-01 12:30:00'
if (s == pd.to_datetime(user_entry)).any():
print('Match found!')
# 2018-01-01 12:30:00
# Match found!