gpt4 book ai didi

Python pandas 基于时间戳查找值

转载 作者:太空宇宙 更新时间:2023-11-03 21:46:42 25 4
gpt4 key购买 nike

我有一个 pandas DataFrame,看起来像这样:

 product month
apple Jan-18
pear Jan-18
banana Jan-18
apple Jan-18
pear Feb-18
apple Feb-18
banana Feb-18

我创建了自己的引用表,如下所示:

id product     start       end    weight
1 apple 01/01/2011 31/01/2018 heavy
1 apple 01/02/2018 31/12/2020 small
2 banana 01/01/2015 31/01/2018 heavy
2 banana 01/02/2018 31/12/2020 small
3 pear 01/01/2016 31/12/2020 heavy

引用表始终以该月的第一天和最后一天开始。随着时间的推移,“权重”领域正在慢慢发生变化。例如,苹果和香蕉随着时间的推移而发生了变化。日期 31/12/2020 表示这是该产品当前的事件维度。

我需要根据时间戳将引用表中的“权重”与产品上的 DataFrame 合并。我需要得到这个:

 product month weight
apple Jan-18 heavy
pear Jan-18 heavy
banana Jan-18 heavy
apple Jan-18 heavy
pear Feb-18 heavy
apple Feb-18 small
banana Feb-18 small

我的困难是我不知道从哪里开始。我的 DataFrame 和引用表中的日期字段是 datetime64[ns]

最佳答案

在 ref_df 中创建一个与 ref_df 的月份列结构相似的新列

合并新创建的列上的两个数据框

def month_conversion(x):
month_list = ['Jan','Feb','Mar','Apr','May','June','July','Aug','Sep','Oct','Nov','Dec']
return month_list[int(x.month)-1]

ref_df['year'] = ref_df['start'].head().map(lambda x: str(x.year)[-2:])

ref_df['month'] = ref_df.loc[0:5,'start'].map(month_conversion)

ref_df['common_key'] = ref_df['month'] +'-' +ref_df['year']
my_df['month'] = my_df['month'].astype(str)
final_df = ref_df.merge(my_df,left_on=['common_key','product'],right_index=['month','product'],suffixes=('_merge',''))

关于Python pandas 基于时间戳查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52441937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com