enter image description here我有一个pandas数据框,其中有一列包含格式为字符串的日期列表,例如: ['2019-08-19','2018-04-23']
我试图将这些列表转换为DateTime对象的列表,以便可以通过df.iterrows()迭代地将这些日期与格式相似的另一列中的日期进行比较。
我尝试过类似的事情:
#<i>for index, row in merged_list.iterrows():`enter code here`
scs_date = list(row["scs_date"])
print(scs_date)
print(type(scs_date))
l1 = pd.to_datetime(row["scs_date"]).dt.date.unique().tolist()<i>
#
但是它一直将列表分成单个字符,并抱怨它无法将项目转换成日期时间对象。
我也尝试过:
l1 = [datetime.strptime(date,"%Y-%m-%d").date() for date in scs_date]
再次它不起作用,并给了我这个错误:
“ ValueError:时间数据'['与格式'%Y-%m-%d'不匹配” 在此处输入代码
任何线索, 谢谢
更新:
我添加了一个示例数据框,如果有帮助的话。 最终目标是找出同一行的DAY_2列中是否存在DAY_1列中的任何日期。谢谢
答案 0 :(得分:0)
发布数据的实际样子将使您受益。
df =pd.DataFrame(
[[['2019-08-19', '2018-04-23']],
[['2019-08-19', '2018-04-23']],
[['2019-08-19', '2018-04-23']],
[['2019-08-19', '2018-04-23']]])
def f(v):
return [datetime.datetime.strptime(date, '%Y-%m-%d') for date in v]
df[0] = df[0].map(f)
print(df)
0
0 [2019-08-19 00:00:00, 2018-04-23 00:00:00]
1 [2019-08-19 00:00:00, 2018-04-23 00:00:00]
2 [2019-08-19 00:00:00, 2018-04-23 00:00:00]
3 [2019-08-19 00:00:00, 2018-04-23 00:00:00]