我有两个从XML数据创建的数据帧;它们有每个文件的文件名和路径列表,包括一些额外的元数据。像这样的
filename - filepath - meta1 - meta2 - meta3
基本上,每个数据帧都有可能与另一个数据帧中的文件同名的文件,但它们位于不同的路径中。我试图比较这两个数据帧,以找出在这两个数据帧中哪些文件是唯一的,以及在这两个数据帧中哪些文件名是通用的。我将只看一下文件名;因此,如果两个数据帧上都存在一个文件,即使路径不同,我也会将它们计为重复
我开始研究各种Pandas方法,并在指定我只想使用filename
列之后找到了drop_duplicates()
函数,该函数适用于我的情况
df_unique = df_merged.drop_duplicates(subset=['filename'])
这将返回一个数据帧,其中只包含已连接的两个数据帧中的唯一文件名。但是我怎样才能得到重复的列表呢
例如:
df1:
filename - filepath - meta1 - meta2 - meta3
test1 c:\tests ax1 ax2 cv
test2 c:\tests ax1 ax1 cv
test3 c:\tests ax2 ax1 cb
df2:
filename - filepath - meta1 - meta2 - meta3
test1 c:\tests2 ax1 ax2 cv
test4 c:\tests2 ax1 ax1 cv
test2 c:\tests2 ax2 ax1 cc
test5 c:\tests2 ax1 ax1 cb
df_unique:
filename - filepath - meta1 - meta2 - meta3
test1 c:\tests ax1 ax2 cv
test2 c:\tests ax1 ax1 cv
test3 c:\tests ax2 ax1 cb
test4 c:\tests2 ax1 ax1 cv
test5 c:\tests2 ax1 ax1 cb
df_duplicates:
test1 c:\tests ax1 ax2 cv
test2 c:\tests ax1 ax1 cv
因此,unique基本上是在两个数据帧中找到的任何唯一文件名的第一个实例,仅与文件名匹配(因此,如果其他字段不同,则可以) 重复数据帧是这两个数据帧中常见的第一个实例
尝试与外部联接方法合并,仅从左向右使用指示符表示唯一,同时使用两个指示符表示重复
df=pd.merge(df1,df2,on=['filename'],how=“outer”,indicator=True)
相关问题 更多 >
编程相关推荐