Pandas 由于where条件,数据帧左合并变为内部合并

Pandas 由于where条件,数据帧左合并变为内部合并,pandas,merge,where,Pandas,Merge,Where,我有两个数据帧,我需要对它们进行左合并(不想丢失第一个df的记录)。我可以很好地进行合并,但是当我添加where条件(我希望记录time\u dim\u id在call\u dim\u id和evt\u dim\u id之间)时,我会丢失evt\u dim\u id中有空值的记录(我也希望保留这些记录)。 这是where条件代码的开头。如何添加“或”以保留evt\u dim\u id为空的记录 df_MG_where = df_MG[((df_MG.time_dim_id >= df_MG

我有两个数据帧,我需要对它们进行左合并(不想丢失第一个df的记录)。我可以很好地进行合并,但是当我添加where条件(我希望记录time\u dim\u id在call\u dim\u id和evt\u dim\u id之间)时,我会丢失evt\u dim\u id中有空值的记录(我也希望保留这些记录)。 这是where条件代码的开头。如何添加“或”以保留evt\u dim\u 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 ????)]
df_MG_其中=df_MG[(df_MG.time\u dim\u id>=df_MG.call\u dim\u id)和(df_MG.time\u dim\u idIIUC您可以向条件添加函数:

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
打印df\u MG
时间维度id呼叫维度id evt维度id
0           10            3        25.0
1 8 4南
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_其中=df_MG[((df_MG.time_dim_id>=df_MG.call_dim_id))和
(df_MG.time_dim_idIIUC您可以向条件添加函数:

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
打印df\u MG
时间维度id呼叫维度id evt维度id
0           10            3        25.0
1 8 4南
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_其中=df_MG[((df_MG.time_dim_id>=df_MG.call_dim_id))和

谢谢!这是拼图的最后一块。非常感谢你的帮助。谢谢!这是拼图的最后一块。非常感谢你的帮助。