如何在不连接两个数据帧的情况下在Python中对下面的代码进行矢量化

2024-09-30 18:32:26 发布

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

我有两个数据帧和多个列,如下所示

头部(df

    SCHEDULING_DC_NBR       COMMODITY_CODE          Unload_Start_Time   DOW     Dlry
0   6042.0                    SCGR                      15:15           SUN      5
1   6042.0                    SCGR                      15:30           SUN      6
2   6042.0                    SCGR                      15:45           SUN      7
3   6042.0                    SCGR                      16:15           SUN      8
4   6042.0                    SCGR                      18:30           SUN      9

头部(配置测向)

Node      Window               APPLICABLE_DAYS   COMMODITY_CODE  Window_start_time  config_ID
7023.0  03:15 AM to 03:16 AM            MON         SCPR                03:15        123
7023.0  03:15 AM to 03:16 AM            THUR        SCPR                03:15        123
7023.0  03:15 AM to 03:16 AM            FRI         SCPR                03:15        123
6042.0  06:00 PM to 06:05 PM            SUN         SCPR                18:00        111
6042.0  03:00 PM to 03:05 PM            SUN         SCGR                15:00        222

我想在数据帧df上应用行操作,使用下面使用apply函数的逻辑,从config_df中找到合适的容量配置id

def config_map(row):
    row = row.copy()
    return config_df.loc[(config_df['Node'] == row['SCHEDULING_DC_NBR']) & (config_df['COMMODITY_CODE'] == row['COMMODITY_CODE']) 
                          &  (config_df['APPLICABLE_DAYS'].str.contains(row['DOW'],case=False))
                          & (live_config['Window_start_time'] == row['Unload_Start_Time']),"capacity_config_id"].values[0]

尽管如此,上面的代码仍然有效,但运行起来需要很多时间。 我不想加入或合并这两个数据帧,因为我将在上面的apply函数中执行多个其他检查。我正在寻找一种方法来矢量化此函数,以加快计算速度


Tags: to数据函数configdfcodewindowam