$txt = 'file content';
$this->load->helper('download');
force_download('File ' . date('Y-m-d H:i:s') . '.txt', $txt);
如果我有一个带有如上图所示的axix的数据框,我该如何为每一行水平而不是垂直地执行DataFrame.rank。
我想在df的末尾创建一个名为 A_Bid A_Ask B_Bid B_Ask C_Bid C_Ask D_Bid D_Ask .. rank_bid
0 120.12 120.15 120.13 120.16 120.14 120.15 120.12 120.15 3
1 8.55 8.65 8.45 8.75 8.53 8.64 8.50 8.60 1
的列,并针对'rank_bid'
找到'A_Bid'
排名等等...我还想对{{{I}进行排名1}}但使用最小值作为排名最高的。
答案 0 :(得分:1)
IIUC您可以filter
将您的df改为“出价”列,并使用axis=1
和method='dense'
在ascending=False
上致电rank
:
In [91]:
df['rank_bid'] = df.filter(like='Bid').rank(method='dense',axis=1, ascending=False)['A_Bid']
df
Out[91]:
A_Bid A_Ask B_Bid B_Ask C_Bid C_Ask D_Bid D_Ask rank_bid
0 120.12 120.15 120.13 120.16 120.14 120.15 120.12 120.15 3
1 8.55 8.65 8.45 8.75 8.53 8.64 8.50 8.60 1
以下是rank
方法的输出:
In [92]:
df.filter(like='Bid').rank(method='dense',axis=1, ascending=False)
Out[92]:
A_Bid B_Bid C_Bid D_Bid
0 3 2 1 3
1 1 4 2 3