在两列日期时间之间找到所需的日期时间

问题描述

我是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()

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...