gpt4 book ai didi

python - 找到两个列表的每个元素之间的最大差异

转载 作者:行者123 更新时间:2023-11-28 20:00:44 25 4
gpt4 key购买 nike

我有两个字典列表,想找出两个列表中每个元素在哪个州的差异最大。两个列表的长度相同。

list1 = [{'NY':40, 'NJ':30, 'FL':30}, {'NY':40, 'NJ':50, 'FL':10}]

list2 = [{'NY':50, 'NJ':45, 'CT':20}, {'NY':40, 'FL':30}]

对于list1[0]list2[0]FLFL以来两者之间的差异最大code> = 30,NY = 10,NJ = 15,CT = 20。对于 list1[1]list2[1]NJ 的差异最大。

下面如何得到想要的输出?谢谢。

 State  Diff 
FL 30
NJ 50

最佳答案

我们要比较两个DataFrame对应的行。首先,让我们对齐它们:

df1 = pd.DataFrame(list1)    
df2 = pd.DataFrame(list2)

df1, df2 = df1.fillna(0).align(df2.fillna(0), fill_value=0)
df1

CT FL NJ NY
0 0 30 30 40
1 0 10 50 40

df2
CT FL NJ NY
0 20.0 0.0 45.0 50
1 0.0 30.0 0.0 40

现在,您可以使用idmax 找到具有最大差异的值,调用lookup 获取差异值并创建一个新的DataFrame。

u = (df1 - df2).abs()
idx = u.idxmax(1)
pd.DataFrame({'State': idx, 'Diff': u.lookup(u.index, u.idxmax(1))})

State Diff
0 FL 30.0
1 NJ 50.0

关于python - 找到两个列表的每个元素之间的最大差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55032545/

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