我有1000个观察,我已经用4个不同的模型进行了分析。这些模型的结果存储在4个数据帧中,如下所示:
import pandas as pd
model_1 = pd.DataFrame(data={"observation_id": [0, 1, ..., 1000],
"param_1": [0, 4, ..., 2]})
model_2 = pd.DataFrame(data={"observation_id": [0, 2, ..., 1000],
"param_1": [1, 3, ..., 1]})同样,对于另外两个数据帧(实际上数据帧中还有更多的参数)。
"observation_id“唯一地将模型的结果与观察结果相匹配。因此,observation_id =0给出了这四个模型的结果。
问题是,建模的数据中存在空白。model_1可能缺少observation_id 45,model_3可能缺少observation_id 721。
如何创建四个新的数据框架,只包含与observation_ids相关的所有4个数据集所共有的结果?
发布于 2019-07-19 14:00:24
下面是使用merge和how='left'的一种方法
from functools import reduce
p1 = reduce(lambda left,right: pd.merge(left,right,on='observation_id',how='left'), [df1,df2,df3,df4])如果你只想要一个df而不是四个
from functools import reduce
df = reduce(lambda left,right: pd.merge(left,right,on='observation_id',how='inner'), [df1,df2,df3,df4])https://stackoverflow.com/questions/57114016
复制相似问题