如何解决在两列日期时间之间找到所需的日期时间
我是Python的新手,通常是编程的人,因此,如果我在描述我的请求时出错,请不要评判我。所以我需要解决一个任务。
我有两个DateFrames。其中之一具有20000行和三列:id_clients,start_time_visit,end_time_visit。 DateFrame的名称=访问次数 这是用户在网站上的访问。
第二个DateFreme有800行,并具有列:id_lead,time_create_lead,model。 来自CRM系统的数据。
因此,我需要从创建CRM线索的网站中找出id_clients。
我认为我可以从周期开始申请,例如:start_time 我写了这段代码: 但是我有这个错误: 我研究了互联网,但没有找到解决此问题的方法。感谢您的帮助。{
"@context": {
"EntitySearchResult": "goog:EntitySearchResult","resultScore": "goog:resultScore","@vocab": "http://schema.org/","kg": "http://g.co/kg","goog": "http://schema.googleapis.com/","detailedDescription": "goog:detailedDescription"
},"@type": "ItemList","itemListElement": []
}
dict_time = crm.set_index('time_create_lead').to_dict() # create a dict
def time_search (row):
""" This function has to return a row with create_time_of_lead"""
time_start = row['start_time']
time_end = row['end_time']
if time_start <= dict_time <= time_end:
return value
else:
return 0
goals['leed'] = goals.apply(time_search,axis=1)
解决方法
df = pd.DataFrame(columns=["one","two"])
df.one = ["2019-01-24","2019-01-27"]
df.one = pd.to_datetime(df.one)
df.two = ["2019-01-28","2020-01-29"]
df.two = pd.to_datetime(df.two)
print(df)
difference = (df.two - df.one)
让我知道这种方法是否对您有用。
,如果我确实了解您想要做什么; 您要返回在CRM中创建销售线索的访问者的clients_id。
为此,您将需要检查每个time_of_create_lead是否在开始时间和结束时间之间。如果为true,则将返回与这些日期相对应的clients_id。
这是一个可以完成这项工作的代码(鉴于您的大数据,这可能会很耗时):
lead_creators = pd.DataFrame(columns=['id_clients','id_lead','start_time_visit','time_create_lead','end_time_visit'])
visits['start_time_visit'] = pd.to_datetime(visits['start_time_visit'])
visits['end_time_visit'] = pd.to_datetime(visits['end_time_visit'])
crm['time_create_lead'] = pd.to_datetime(crm['time_create_lead'])
for j in visits.index:
for t in crm.index:
if visits.iloc[j,1]<=crm.iloc[t,1]<=visits.iloc[j,2]:
lead_creators = lead_creators.append({'id_clients' : visits.iloc[j,0],'id_lead': crm.iloc[t,'start_time_visit': visits.iloc[j,1],'time_create_lead':crm.iloc[t,'end_time_visit':visits.iloc[j,2]},ignore_index=True)
lead_creators
我已经尝试过一个小的数据集,并且效果很好。
,如果我正确理解了您的问题并发表了评论,这应该可以工作-
df3.one = df.one
df3.two = df.two
df3.df2_date = df2.values()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。