熊猫数据帧左合并由于位置条件变为内部合并



我有 2 个数据帧需要对这些数据帧进行左合并(不想丢失第一个 df 的记录)。 我可以很好地进行合并,但是当我添加一个 where 条件(我想要 time_dim_id 在 call_dim_id 到 evt_dim_id 之间的记录)时,我丢失了evt_dim_id中具有空值的记录(我也想保留这些)。这是我的 where 条件代码的开头。 如何添加"OR"以便将evt_dim_id为空的记录保留?

df_MG_where = df_MG[((df_MG.time_dim_id >= df_MG.call_dim_id) & (df_MG.time_dim_id <= df_MG.evt_dim_id)) | (df_MG.evt_dim_id ????)]

IIUC 您可以向条件添加函数isnull

print df_MG
   time_dim_id  call_dim_id  evt_dim_id
0           10            3        25.0
1            8            4         NaN
2            1            5         2.3
3            1            6         2.4
4            2            7         1.2
5            2            8         5.5
6            2            9         5.7
df_MG_where = df_MG[(((df_MG.time_dim_id >= df_MG.call_dim_id) & 
                    (df_MG.time_dim_id <= df_MG.evt_dim_id)) | (df_MG.evt_dim_id.isnull() ))]
print df_MG_where                    
   time_dim_id  call_dim_id  evt_dim_id
0           10            3          25
1            8            4         NaN

最新更新