gpt4 book ai didi

python - 显示 2 个不同大小的 DataFrame 的共同元素和差异

转载 作者:太空宇宙 更新时间:2023-11-04 11:19:48 24 4
gpt4 key购买 nike

我有 2 个包含字符串值的 DataFrame。它们也有不同的尺寸。我想显示 2 个数据帧之间的共同元素和差异。

我的方法是:我创建了一个函数 compare(DataFrame1, DataFrame2),它将使用 equals 方法比较 2 个 DataFrame。如果它们相同,那么我就不需要再寻找差异了。我需要第二个函数来实际显示 DataFrame 之间的差异。有人可以帮我继续吗?

def test2_expansion():
test1 = graph.run('match (n:Disease)-[:HAS_CHILD]->(m:Disease) where n.id ="C0039446" return distinct m.id order by m.id;')
test1 = pd.DataFrame(test1.data())
return test1

g = test2_expansion()
g = g.to_dict(orient='list')
print ("The result of test 2 for expansion in Neo4j is ")
for key, value in g.items():
for n in value:
print(n)


def compareResults(a,b):
if a.equals(b):
return True
else:
return False

def takeDifferences():
a = "Search differences"
if (compareResult() == True):
return "Amaizing!"
else:
return a


DataFrame1
C0494228
C0272078
C2242772

DataFrame2
C2242772
C1882062
C1579212
C1541065
C1306459
C0442867
C0349036
C0343748
C0027651
C0272078

Display Common Elements: C0272078 C2242772
Elements found only in DataFrame1:C0494228
Elements found only in DataFrame2:C2242772
C1882062
C1579212
C1541065
C1306459
C0442867
C0349036
C0343748
C0027651

最佳答案

我现在可以向您展示我的通用函数,它将回答我的问题

def compare(a,b):
if a.equals(b):
print("SAME!")
else:
df = a.merge(b, how='outer',indicator=True)
x = df.loc[df['_merge'] == 'both', 'm.id']
y = df.loc[df['_merge'] == 'left_only', 'm.id']
z = df.loc[df['_merge'] == 'right_only', 'm.id']
print (f'Display Common Element: {", ".join(x)}')
print (f'Elements found only in DataFrame1: {", ".join(y)}')
print (f'Elements found only in DataFrame2: {", ".join(z)}')

此刻我的函数返回 None 因为我不知道我是否应该返回一些东西,但它工作得很好。谢谢@jezrael

关于python - 显示 2 个不同大小的 DataFrame 的共同元素和差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56254683/

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