【问题标题】:Combine/Join Pandas Data Frames合并/加入 Pandas 数据框
【发布时间】:2019-06-16 12:38:19
【问题描述】:

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

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

如何将这两个框架组合起来,让每个租金都有相应的天气条件?

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

如何组合/加入这两个数据框以获得我想要的?

正如它所看到的,第二个数据帧中的每条记录在第一个数据帧中都有许多记录,但第一个数据帧中的每条记录只与第二个数据帧中的一条记录相关。

我对我需要的连接类型(内、外、左、右)感到困惑?

谢谢

【问题讨论】:

  • 能否请您发布一些示例数据(作为文本,而不是图像),以便读者更好地理解问题并制定解决方案?

标签: python pandas dataframe join


【解决方案1】:

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

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

然后设置索引,按照参考时间的顺序加入它们

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

关于加入模式选项,您可以查看文档here

how : {‘left’, ‘right’, ‘outer’, ‘inner’},默认‘left’ 如何处理这两个对象的操作。

left:使用调用框架的索引(或指定的列) 对:使用其他人的索引。 外部:将调用框架的索引(如果指定了on,则为列)与其他索引形成并集,并对其进行排序。按字典顺序。 内部:形成调用框架的索引(如果指定了on,则为列)与其他索引的交集,保持顺序 打电话的人。

默认模式为左

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 2017-07-10
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2013-09-18
    • 2019-07-18
    相关资源
    最近更新 更多