2016-11-10 116 views
1

我有以下数据框:如何在DataFrame中将另一列中的值与另一列中的值相提并论?

enter image description here

我想看看哪个国家列“黄金”和“黄金1号”的最大区别。该指数目前是国家。

作为一个例子,对阿富汗来说,它将是0-0 = 0。我对每个国家都这样做,而且这个清单中的最高数字就是我的回应。这就是我想我想要做的。

有谁知道我该怎么做?还是有一个内置的函数可以计算出来?

回答

0

可以使用减去这两列中的内置矢量减法:

df1['Gold'] - df2['Gold 1'] 
0

与最大的不同的国家是

df.Gold.sub(df['Gold 1']).idxmax() 

最大的绝对差值

df.Gold.sub(df['Gold 1']).abs().idxmax() 

你也可以按差异排序

df.loc[df.Gold.sub(df['Gold 1']).sort_values().index] 

还是绝对差值

df.loc[df.Gold.sub(df['Gold 1']).abs().sort_values().index] 
0

,你可以尝试下面的代码:

import pandas as pd 
df = pd.DataFrame([['Afgh',0,0],['Agnt',18,0]], columns = ['Country','Gold','Gold1']) 
df['GoldDiff'] = df['Gold'] - df['Gold1'] 
df.sort_values(by = 'GoldDiff', ascending = False) 

df只是基于你上面的测试数据帧。 df['GoldDiff']创建一个新的列来存储差异。

然后,您可以简单地使用熊猫的sort_values函数对值进行排序。如果要将数据框修改为已排序的数据框,也可以添加选项inplace = True

+0

很高兴它帮助了队友,如果它帮助你解决你的问题,请接受答案。 http://stackoverflow.com/help/someone-answers – BernardL

相关问题