最近我遇到了以下要求,我不确定这里最好的解决方案是什么。
我有一张有司机名字的桌子,比方说A,B;在另一个表中,我为这些驱动程序提供了一些事件,每个事件都有一个发布日期,例如驱动程序AI有2017-06-06和2017-06-09,而对于驱动程序BI有2017-06-07和2017-06 -10(yyyy-mm-dd格式)。
我需要对此进行排序,以便在我需要ASC订单的情况下,它会比较两个驱动程序的最早发布日期,当它找到2017-06-06的驱动程序A时,它会在其后面显示所有事件对于那个特定的驱动程序,只有在那之后才会出现驱动程序B的事件,所以基本上我有以下顺序:
我不确定这里的最佳解决方案是什么...也许是另一个SELECT中的SELECT,具有不同的ORDER BY?
表1:
身份证号码
1 A
2 B.
表2:
issue_date | driver_id
2017-06-06 | 1
2017-06-09 | 1
2017-06-07 | 2
2017-06-10 | 2个
如上所述的期望输出,即首先比较发行日期;当发现最早时,带来具有相同driver_id的所有其他事件,并且仅在此之后转到下一个驾驶员的事件。
答案 0 :(得分:0)
您可以使用窗口函数订购第二个表:
dataMAC = dataAll.loc[dataAll['Actor1Name'].str.contains('macao|macau') == True | dataAll['ActionGeo_FullName'].str.contains('macao|macau') == True]
Actor1Name ActionGeo_FullName
macao macau
US USA
China China
UK United Kindom
China MC macau
这不会加入第二个表,但这是对查询的一个小修改。