我有以下数据框:如何在DataFrame中将另一列中的值与另一列中的值相提并论?
我想看看哪个国家列“黄金”和“黄金1号”的最大区别。该指数目前是国家。
作为一个例子,对阿富汗来说,它将是0-0 = 0。我对每个国家都这样做,而且这个清单中的最高数字就是我的回应。这就是我想我想要做的。
有谁知道我该怎么做?还是有一个内置的函数可以计算出来?
我有以下数据框:如何在DataFrame中将另一列中的值与另一列中的值相提并论?
我想看看哪个国家列“黄金”和“黄金1号”的最大区别。该指数目前是国家。
作为一个例子,对阿富汗来说,它将是0-0 = 0。我对每个国家都这样做,而且这个清单中的最高数字就是我的回应。这就是我想我想要做的。
有谁知道我该怎么做?还是有一个内置的函数可以计算出来?
可以使用减去这两列中的内置矢量减法:
df1['Gold'] - df2['Gold 1']
与最大的不同的国家是
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]
,你可以尝试下面的代码:
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
。
很高兴它帮助了队友,如果它帮助你解决你的问题,请接受答案。 http://stackoverflow.com/help/someone-answers – BernardL