Pandas:根据索引列中的条件填充和合并两个不同的数据帧

2024-09-23 22:23:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据框,第一个是1月份的纽约出租车数据集(10678070行7列),第二个是1月份的纽约天气数据集(864行30列),每小时如下:

df2.head()

NYC taxis DataFrame

weather.head()

NYC weather DataFrame

所以现在,我想做的是合并两个数据帧,或者根据行程日期和时间等于或小于天气记录向df2添加weather列详细信息。
因此,如果df2中的列(tpep_pickup_datetime)与weather中的列(tpep_pickup_datetime)匹配或小于(tpep_pickup_datetime),则weather中的行将被追加到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'))

但我在天气专栏中得到了df2,其中包含NAN值,如下所示:

dmerge.head()

enter image description here

在熊猫身上有没有一个顺利的方法? 提前谢谢大家


Tags: 数据pandasdatetimebymergesortheadvalues