合并/加入熊猫数据框

时间:2019-06-16 12:38:19

标签: python pandas dataframe join

我有两个数据框,第一个数据框来自一个岛上的踏板车租赁公司,它包含有关踏板车类型,持续时间,开始和结束时间以及许多其他字段的数据,第二个数据框包含来自该岛的气象数据。

因为每天的气象数据每3小时有8个记录/度量值(例如,在01.00am,04:00 am到22:00 pm),我将第一个数据框中的开始时间按顺序转换/切割为8个bin为每条记录组合相应的天气条件。

我怎样才能将这两个框架结合起来以使每个房租都具有相应的天气条件?

假设我具有字段df1.rent_id,df1.rent_day,df1.starting hour(从1到8)和df2.day,df2.hour(从1到8),df2.temp等。

如何结合/结合这两个数据框以获取我想要的东西?

如所见,第二个数据帧中的每个记录在第一个数据帧中都有许多记录,但是第一个数据帧中的每个记录仅与第二个数据帧相关。

我对所需的联接类型(内部,外部,左侧,右侧)感到困惑吗?

谢谢

1 个答案:

答案 0 :(得分:0)

首先,您需要设置参考列以对合并的数据框进行排序 例如,您可以将starting time用于df1,将time用于df2

df1['reference_time']=df1['starting time']
df2['reference_time']=df2.['time']

然后设置索引并根据参考时间顺序将它们加入

df1.set_index('reference time').join(df2.set_index('reference_time'))

关于连接模式选项,您可以查看文档here

  

操作方式:{'左','右','外','内'},默认为'左'   如何处理两个对象的操作。

     

左:使用调用框架的索引(如果指定为开,则为列)   正确:使用其他人的索引。   external:将调用框架的索引(或指定为on的列)与其他框架的索引合并,然后对其进行排序。从字典上看。   内部:调用框架的索引(或指定列的列,如果指定了该索引)与其他索引的交集,则保留了   呼叫一个。

保留默认模式