Pandas 由于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为空的记录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_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))和
谢谢!这是拼图的最后一块。非常感谢你的帮助。谢谢!这是拼图的最后一块。非常感谢你的帮助。