df = pd.read_csv('data.csv')
x = df['gross'] - df.budget
y = x.groupby(x).nlargest(3)
我想从总列中减去预算列,并显示前3个最高值。但是我没有将前3个减去最高值,而我仍然坚持如何继续。我需要一些帮助。
答案 0 :(得分:4)
我认为你不需要groupby
,你可以简单地使用:
(df['gross'] - df['budget']).nlargest(3)
其他方式如果您希望在单独的列中保持差异,则应创建下一列以保持gross
和budget
之间的差异,按其值排序并获取{{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)