小编lan*_*ack的帖子

SQL就像加入熊猫一样

我有两个数据帧,第一个是表单(注意日期是datetime对象):

df = DataFrame('key': [0,1,2,3,4,5],
               'date': [date0,date1, date2, date3, date4, date5],
               'value': [0,10,20,30,40,50])
Run Code Online (Sandbox Code Playgroud)

还有第二种形式:

df2 = DataFrame('key': [0,1,2,3,4,5],
                'valid_from': [date0, date0, date0, date3, date3, date3],
                'valid_to': [date2, date2, date2, date5, date5, date5],
                'value': [0, 100, 200, 300, 400, 500])
Run Code Online (Sandbox Code Playgroud)

我正在尝试有效地加入密钥匹配的位置,日期介于valid_from和valid_to之间.我想出的是以下内容:

def map_keys(df2, key, date):
    value = df2[df2['key'] == key & 
        df2['valid_from'] <= date & 
        df2['valid_to'] >= date]['value'].values[0]
    return value

keys = df['key'].values
dates = df['date'].values
keys_dates = zip(keys, dates)

values = []
for key_date in keys_dates:
    value = map_keys(df2, key_date[0], …
Run Code Online (Sandbox Code Playgroud)

python pandas

12
推荐指数
1
解决办法
5700
查看次数

标签 统计

pandas ×1

python ×1