繁体   English   中英

如何在DataFrame中使用另一列中的值减去一列中的值?

[英]How do I Substract values in one column with the values of another in a 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']创建一个新列来存储差异。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM