Yöntem 1
, sadece ilk 10 değer olacak ve değerlerin sıfırlanması boş olacaktır girdi dataframe boyutu olarak aynı çıktıyı, bu nedenle dizinini verecek Her sütunun en iyi 10 değeri korunur.
In [2]: import pandas as pd
In [3]: import numpy as np
In [4]: df = pd.DataFrame(np.random.rand(100,100))
In [5]: out = df.apply(lambda x: x.sort_values(ascending=False).head(10), axis=0)
In [6]: out
Out[6]:
0 1 2 3 4 5 6 \
0 NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN
3 0.884964 NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN 0.950102 NaN NaN
6 NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN 0.990906 NaN
8 NaN NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN 0.953309
10 NaN NaN 0.932619 NaN NaN NaN NaN
11 NaN NaN NaN NaN NaN NaN 0.930249
12 NaN 0.907756 NaN NaN NaN NaN NaN
13 NaN NaN NaN NaN NaN NaN NaN
14 NaN NaN NaN NaN NaN NaN NaN
15 NaN NaN NaN NaN NaN 0.947548 NaN
16 0.952427 NaN NaN 0.933285 NaN NaN NaN
17 NaN NaN NaN NaN NaN NaN NaN
18 0.908944 NaN NaN NaN NaN 0.944756 NaN
19 NaN NaN NaN NaN NaN NaN NaN
20 NaN NaN NaN NaN NaN NaN NaN
21 NaN NaN NaN NaN NaN NaN NaN
22 NaN NaN NaN NaN NaN NaN 0.936263
23 NaN NaN NaN NaN 0.959198 NaN NaN
24 0.938916 NaN NaN NaN NaN 0.974316 NaN
25 NaN NaN NaN NaN NaN NaN 0.9
26 NaN NaN NaN NaN NaN NaN NaN
27 NaN NaN NaN NaN NaN NaN NaN
28 NaN NaN 0.938866 NaN NaN NaN 0.948390
29 NaN NaN NaN NaN NaN NaN NaN
Yöntem 2 Bu endeks bilgileri ile seri bir listesini verecektir. ile
In [7]: top10 = list()
In [8]: def process(col):
...: top10.append(col.sort_values(ascending=False).head(10))
...:
In [9]: df.apply(process,axis=0)
In [10]: top10
Out[10]:
[47 0.968147
65 0.959752
16 0.952427
24 0.938916
69 0.936472
60 0.922857
63 0.922337
18 0.908944
95 0.888692
3 0.884964
Name: 0, dtype: float64, 41 0.993644
39 0.976932
77 0.969164
47 0.966638
32 0.963084
72 0.941212
42 0.922804
49 0.919793
64 0.917230
12 0.907756
Name: 1, dtype: float64, 56 0.994861
33 0.985983
37 0.985021
79 0.981566
63 0.975600
53 0.953656
35 0.940664
28 0.938866
86 0.933991
10 0.932619
Name: 2, dtype: float64, 50 0.999863
Ne tür bir sonuç beklediğinizi gösterir misiniz? – Abbas
Yakın çoğaltma: [Veritabanındaki her satırın içinde hem üst n değerleri hem de içerdikleri sütunların adlarını alın] (http://stackoverflow.com/questions/40433682/get-both-the-top-n 'lik değerler-ve-isimleri-of-the kolonlar-onlar-meydana-in-içinde-her-ro/40434047 # 40434047). Ayrıca, [tag: top-n] etiketi kullanışlıdır. – smci
"Satırları sırala ..." başlıklı orijinal başlık yanlıştı. Her satırdaki sütunları sıralamak istersiniz. Satırların sırası değişmeden kalır. – smci