我目前正尝试将两个数据帧(df和marche_type_jointure)的数据按某些列(英语:停靠点,方向,日期类型,季节,年份)分组,以这里的代码显示:
df_grouped = df.groupby(['arret', 'sens', 'type_jour','saison', 'annee'])
marche_type_jointure_grouped = marche_type_jointure.groupby(['arret', 'sens', 'type_jour','saison', 'annee'])
这给了我以下带有相关列的数据框(请参见屏幕快照df_variables_1,df_variables_2,marche_type_variables),并且您可以使用以下数据框作为示例(仅最重要的变量)如您所见):
df_jointure = pd.DataFrame([
['Aller','VIG01A' , time(7,21,28),'vac_s' ,'hiver' ,1978 , 'NaN' ],
['Aller','VIG01A' , time(18,7,35),'vac_s' ,'hiver' ,1978 , 'NaN' ],
['Aller','LYC30R' , time(7,21,54),'vac_s' ,'hiver' ,1978 , 'NaN' ],
['Aller','LYC30R' , time(14,43,42),'vac_s' ,'hiver' ,1978 , 'NaN' ] ], columns=['sens', 'arret', 'heure_arrivee_reelle', 'type_jour', 'saison', 'annee', 'temps_trajet_mt'])
marche_type_jointure = df = pd.DataFrame([
['VIG01A', time(6,0,0), time(6,29,0), 'hiver', 'Aller', 4, 'vac_s', 1978],
['VIG01A', time(7,0,0), time(7,29,0), 'hiver', 'Aller', 4, 'vac_s', 1978],
['VIG01A', time(7,0,0), time(7,59,0), 'hiver', 'Aller', 4, 'vac_s', 1978],
['VIG01A', time(18,30,0), time(18,59,0), 'hiver', 'Aller', 4, 'vac_s', 1978],
['LYC30R', time(6,0,0), time(6,29,0), 'hiver', 'Aller', 1, 'semaine', 1978],
['LYC30R', time(7,45,0), time(7,59,0), 'hiver', 'Aller', 1, 'semaine', 1978],
['LYC30R', time(9,30,0), time(15,59,00), 'hiver', 'Aller', 1, 'semaine', 1978]],
columns=['arret', 'heure_debut_periode', 'heure_fin_periode', 'saison', 'sens', 'temps_trajet_sur_periode', 'type_jour', 'annee])
以下也是最重要的变量:
在df中:'sens'
(第6列),
'arret'
(停止,第9列),
'heure_arrivee_reelle'
((公共汽车的实际到达时间)第13栏),
'type_jour'
(类型的一天,其中“ vac_s”表示假期 ,“ samedi”表示星期六 ,“ dimanche”是 sunday ,最后是“ semaine”,表示 week ,第25列),
'saison'
(季节:第26列为冬季的“冬日”或夏季为“ ete”),
'annee'
(表示2018-2018年的冬季,即2018或1978年,即2017年1月至2017年5月,然后是2017年9月至2018年5月,第29栏),
“ temps_trajet_mt ”暂时为空,但值将来自“ marche_type_jointure_grouped”(。temps_trajet_sur_periode)。
对于marche_type_jointure_grouped:'arret'
(停止),'heure_debut_periode'
和'heure_fin_periode'
,它们是某个时间段的开始和结束,其中某个时间段'temps_trajet_sur_periode'
是从前一站到我们所站(在公交线路上)的时间。 'type_jour'
,'saison'
和'sens'
与df_grouped
中的相同。
我实际上要做的是,对于分组数据帧中的每个“关键”(停靠点,方向,日期类型,季节和年份),比较值'heure_arrivee_reelle'
(' actual_time_of_arrival df_grouped
中的'英文'(英文)'(<< em> end_time_period ')和/或'heure_fin_periode'
(' starting_time_period '遵循以下条件:
“如果[heure_debut_periode,heure_fin_periode]中的heure_arrivee_reelle”(作为 interval ,但可能会更容易得出相同的结果)'heure_debut_periode'
。
显然,我正在寻找一种有效的方法。这是我尝试执行的操作,以便您可能会了解我正在执行的操作:
then the value of temps_trajet_mt in df_grouped becomes the corresponding value of temps_trajet_sur_periode in marche_type_jointure_grouped
谢谢您的帮助,这真的意味着我已经有一个多星期了!并且请告诉我我想做的事情是否不清楚(如果您愿意的话,或多或少是有条件的联合)