others - python - 如何在非索引列上找到多个 pandas dataframe的交集

如何获取数据帧列表,并创建一个仅在非索引列中有相同值的行的新df?

时间: 作者:

这就是我最终实现的,你看看是否有其他方法可以更有效地做到这一点。


import copy



dfs_array = [ df1, df2, df3, df4, ... ]



def intersection_of_dfs(dfs_array,col='Ticker'):


 if len(dfs_array) <= 1:


 # if we only have 1 or 0 elements simply return the origial array


 # no error is given, logic must be created for the return value.


 return dfs_array


 # does a shallow copy only.


 dfs = copy.copy(dfs_array)


 length = len(dfs) 


 while length > 1:


 df1 = dfs.pop()


 df2 = dfs.pop()


 df0 = df1.loc[ df1[col].isin( df2[col].values ) ]


 dfs.insert(0,df0)


 length = len(dfs)


 return dfs



作者:
...