我有 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