我有以下数据框:
我想看看哪个国家/地区与#34; Gold"和" Gold 1"。该指数目前是各国。
作为一个例子,对于阿富汗,它将是0-0 = 0.我对每个国家这样做,而且该列表中的最高数字是我的回答。这就是我想我想做的事情。
有谁知道我怎么能这样做?或者是否有内置函数可以计算出来?
答案 0 :(得分:0)
您可以使用内置向量减法减去这两列:
df1['Gold'] - df2['Gold 1']
答案 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]
答案 2 :(得分: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']
会创建一个新列来存储差异。
然后,您可以使用pandas中的sort_values
函数对值进行排序。如果要将数据框修改为已排序的数据框,也可以添加选项inplace = True
。