您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如果在另一个df中的日期范围之间,python将值分配给pandas df

如果在另一个df中的日期范围之间,python将值分配给pandas df

使用IntervalIndex,这是Pandas 0.20.0中的新功能。不过,这似乎仍处于实验阶段,因此其他解决方案可能更可靠。

# Get the 'id' column indexed by the 'start'/'end' intervals.
s = pd.Series(df_b['id'].values, pd.IntervalIndex.from_arrays(df_b['start'], df_b['end']))

# Map based on the date of df_a.
df_a['id'] = df_a['date'].map(s)

结果输出

        date values  id
0 2017-05-16      x  34
1 2017-04-12      Y  32

另外,如果您不介意更改的索引df_b,则可以直接将IntervalIndex其转换为on:

# Create an IntervalIndex on df_b.
df_b = df_b.set_index(['start', 'end'])
df_b.index = pd.IntervalIndex.from_tuples(df_b.index)

# Map based on the date of df_a.
df_a['id'] = df_a['date'].map(df_b['id'])
python 2022/1/1 18:41:38 有475人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶