【发布时间】:2020-10-05 08:25:33
【问题描述】:
我有一个关于 pd.merge_asof 和索引的问题。
首先,我使用我需要的列/数据创建一个数据框,然后按如下方式对其进行排序:
df1 = df[['A','B','C']].sort_values('B')
df1.head()
head 表示 df 中的索引已结转到 df1(索引为日期)。
接下来我执行 pd.merge_asof 如下:
df2 = pd.merge_asof(df, df3, left_on='B', right_on='Z')
但是,如果我检查 df2 的头部,日期索引现在丢失了。我需要将其转入 df2(来自 df/df1),因为我将按照日期顺序重新排序数据(这对我正在做的事情很重要)。
有什么想法可以用简单的方式做到这一点吗?
一如既往的感谢!
保罗
【问题讨论】:
-
你的df2有多个索引吗?如果你只有一个并且它是排序的
datetime,那么你可以做df2 = pd.merge_asof(df, df3, left_index=True, right_index=True)。如果datetime不是您的索引,那么您可以尝试将索引重置为已排序的datetime并重做连接吗?请确保dtype为datetime,然后再设置为索引并合并
标签: python pandas indexing merge