2017-03-28 55 views
3

我有一個熊貓數據框,我想按列的降序排序。用inf和NaN排序熊貓數據幀

Name count 
AAAA -1.1 
BBBB  0 
CCCC -10 
DDDD  inf 
EEEE  3 
FFFF  NaN 
GGGG  30 

我想分類數量降序排列並移動infNaN行到底。 df.sort('count',ascending = False,na_position="last")NaN推到最後。如何處理inf

回答

2

一個可能的解決方案:

In [33]: df.assign(x=df['count'].replace(np.inf, np.nan)) \ 
      .sort_values('x', ascending=False) \ 
      .drop('x', 1) 
Out[33]: 
    Name  count 
6 GGGG 30.000000 
4 EEEE 3.000000 
1 BBBB 0.000000 
0 AAAA -1.100000 
2 CCCC -10.000000 
3 DDDD  inf 
5 FFFF  NaN 
4

你可以把INF值空:

with pd.option_context('mode.use_inf_as_null', True): 
    df = df.sort_values('count', ascending=False, na_position='last') 


df 
Out: 
    Name  count 
6 GGGG 30.000000 
4 EEEE 3.000000 
1 BBBB 0.000000 
0 AAAA -1.100000 
2 CCCC -10.000000 
3 DDDD  inf 
5 FFFF  NaN