【发布时间】:2021-05-19 23:05:10
【问题描述】:
我正在使用三个数据框:df_1、df_2 和 df_3。
它们有不同的行数和列数,以及不同的信息。每个数据框都按国家/地区名称进行索引,这就是它们之间的联系。
我们的想法是找到三者的交集,并确定当我们进行该交集时丢失了多少独特元素。
我首先从创建它们的函数中调用这些 df:
df_1, df_2, df_3 = load_data()
merged_1 = pd.merge(df_1, df_2, how = 'inner', left_index = True, right_index = True)
merged_2 = pd.merge(merged_1, df_3, how = 'inner', left_index = True, right_index = True)
unique_df_1 = pd.merge(df_1, merged_2, how = 'left', left_index = True, right_index = True,
indicator = True).query('_merge=="left_only"')
unique_df_2 = pd.merge(df_2, merged_2, how = 'left', left_index = True, right_index = True,
indicator = True).query('_merge=="left_only"')
unique_df_3 = pd.merge(df_3, merged_2, how = 'left', left_index = True, right_index = True,
indicator = True).query('_merge=="left_only"')
return (len(unique_df_1)+len(unique_df_2)+len(unique_df_3))
这是我关于堆栈溢出的第一篇文章,所以我希望我做的一切都是正确的。如果我没有或者我的文字不清楚,请道歉。
【问题讨论】:
-
欢迎来到 SO,那里有很多文字,很遗憾您缺少 minimal reproducible example 请提供一个,至少应该有示例输入(复制粘贴)和预期输出。跨度>
-
嗨,安德烈亚斯,谢谢!会的。
标签: python pandas dataframe merge