gpt4 book ai didi

python - 如何计算多个数据帧之间的重叠行?

转载 作者:行者123 更新时间:2023-12-03 19:42:41 34 4
gpt4 key购买 nike

我有一个如下所示的多个数据框。

df1 = pd.DataFrame({'Col1':["aaa","ddd","ggg"],'Col2':["bbb","eee","hhh"],'Col3':"ccc","fff","iii"]})
df2= pd.DataFrame({'Col1':["aaa","zzz","qqq"],'Col2':["bbb","xxx","eee"],'Col3':["ccc", yyy","www"]})
df3= pd.DataFrame({'Col1':"rrr","zzz","qqq","ppp"],'Col2':"ttt","xxx","eee","ttt"],'Col3':"yyy","yyy","www","qqq"]})

enter image description here

数据框有 3 列,有时它们的行在数据框之间重叠。 (例如,df1 和 df2 与“aaa、bbb、ccc”具有相同的行)。

我想知道数据帧之间的行是如何重叠的,并希望输出如下所示。

enter image description here

在此输出中,如果在数据帧中检测到相同的行,则输出将为 1,否则为 0。有谁知道如何制作此输出?

在实际数据中,我有大约 100 个数据帧。我首先尝试使用 pd.merge 但无法将其应用于 100 个数据帧...

非常感谢您的帮助。

最佳答案

这是使用 concat 的一种方法和 get_dummies :

l = [df1,df2,df3] #create a list of dataframes
final = pd.concat([i.assign(key=f"df{e+1}") for e,i in enumerate(l)],sort=False)

final = (final.assign(**pd.get_dummies(final.pop('key')))
.groupby(['Col1','Col2','Col3']).max().reset_index())
  Col1 Col2 Col3  df1  df2  df3
0 aaa bbb ccc 1 1 0
1 ddd eee fff 1 0 0
2 ggg hhh iii 1 0 0
3 ppp ttt qqq 0 0 1
4 qqq eee www 0 1 1
5 rrr ttt yyy 0 0 1
6 zzz xxx yyy 0 1 1

关于python - 如何计算多个数据帧之间的重叠行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59853457/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com