从另一列中减去一列并显示减去值的前3个最高值

时间:2017-06-25 02:54:45

标签: pandas

df = pd.read_csv('data.csv')

x = df['gross'] - df.budget

y = x.groupby(x).nlargest(3)

我想从总列中减去预算列,并显示前3个最高值。但是我没有将前3个减去最高值,而我仍然坚持如何继续。我需要一些帮助。

1 个答案:

答案 0 :(得分:4)

更新

我认为你不需要groupby,你可以简单地使用:

(df['gross'] - df['budget']).nlargest(3)

其他方式如果您希望在单独的列中保持差异,则应创建下一列以保持grossbudget之间的差异,按其值排序并获取{{1} }值:

top

输出:

df = pd.DataFrame({'gross':[10,20,30,40,50], 'budget':[8,15,10,10,10]})
print(df)

现在,创建列以保留 budget gross 0 8 10 1 15 20 2 10 30 3 10 40 4 10 50

difference

输出:

df['difference'] = df['gross'] - df.budget
print(df)

现在,按 budget gross difference 0 8 10 2 1 15 20 5 2 10 30 20 3 10 40 30 4 10 50 40 中的差异排序并获得最高值:

descending

输出:

top_3 = df.sort_values(by='difference', ascending=False)[:3]
print(top_3)