首页 > 解决方案 > Pandas:根据索引列中的条件填充和合并两个不同的数据框

问题描述

我有两个 DataFrame,第一个是 1 月份的 NYC 出租车数据集包含(10678070 行和 7 列),第二个是 NYC 天气数据集,也是 1 月份的每个小时(864 行和 30 列),如下所示:

df2.head()

纽约出租车数据框

天气头()

纽约市天气数据框

所以现在,我想做的是合并两个数据框或weather根据行程日期和时间向 df2 添加列详细信息等于或小于天气记录。
因此,如果 df2 中的列 (tpep_pickup_datetime) 与 weather 中的 (tpep_pickup_datetime) 匹配或小于 (tpep_pickup_datetime) ,则天气中的值将附加到 df2 中的相应行。我通过使用merge函数(merge_asof)尝试了这一点,如下所示:

import pandas


# Sort data before merge then merge
df2.sort_values(by='tpep_pickup_datetime', inplace=True)
weather.sort_values(by='tpep_pickup_datetime', inplace=True)
dmerge=pandas.merge_asof(df2,weather, on="tpep_pickup_datetime", tolerance=pandas.Timedelta('31m'))

但是我在天气列中得到带有 NAN 值的 df2,如下所示:

dmerge.head()

在此处输入图像描述

在熊猫中有没有一种流畅的方法来做到这一点?提前感谢大家!

标签: pythonpandasdataframe

解决方案


推荐阅读