对 Pandas DataFrame Describe 输出进行排序(早期解决方案不起作用)

Posted

技术标签:

【中文标题】对 Pandas DataFrame Describe 输出进行排序(早期解决方案不起作用)【英文标题】:Sorting the Pandas DataFrame Describe output (early solutions do not work) 【发布时间】:2021-07-02 00:07:09 【问题描述】:

我正在尝试对数据框的描述进行排序,阅读了几篇关于非常相似问题的帮助帖子,但我无法让它发挥作用。

我的三行代码是这样的:

df1 = myDataset.groupby(['country_code'])['country_code','score'].describe() 

with pd.option_context('display.max_rows', None, 'display.max_columns', None):

display(df1) 
display(df1.reset_index()) 
display(df1.reset_index().sort_values('count', ascending=False))

首屏显示:

    score
count   mean    std min 25% 50% 75% max
country_code                                
AE  10.0    10.000000   31.622777   0.0 0.00    0.0 0.00    100.0
AM  1.0 0.000000    NaN 0.0 0.00    0.0 0.00    0.0
AO  5.0 0.000000    0.000000    0.0 0.00    0.0 0.00    0.0
...

第二次显示:

    country_code    score
count   mean    std min 25% 50% 75% max
0   AE  10.0    10.000000   31.622777   0.0 0.00    0.0 0.00    100.0
1   AM  1.0 0.000000    NaN 0.0 0.00    0.0 0.00    0.0
2   AO  5.0 0.000000    0.000000    0.0 0.00    0.0 0.00    0.0
...

第三个引发错误:

KeyError                                  Traceback (most recent call last)
<ipython-input-28-855a7c54543c> in <module>()
      6       display( df1.reset_index() )
      7 
----> 8       display( df1.reset_index().sort_values('count', ascending=False) )

1 frames
/usr/local/lib/python3.7/dist-packages/pandas/core/generic.py in _get_label_or_level_values(self, key, axis)
   1561             values = self.axes[axis].get_level_values(key)._values
   1562         else:
-> 1563             raise KeyError(key)
   1564 
   1565         # Check for duplicates

KeyError: 'count'

与其他解决方案相比,我不确定我在做什么: Sorting the Pandas DataFrame Describe output

【问题讨论】:

链接的解决方案只为.describe() 使用了一个密钥,但您使用了两个密钥['country_code','score']。所以df1.reset_index() 有多列索引,.sort_values('count', ascending=False) 找不到键'count'。请看***.com/questions/14733871/… 不知道“多列索引”非常感谢!! 【参考方案1】:
df1.sort_values([('score','count')], ascending=False)

感谢@ilkyun-im

【讨论】:

以上是关于对 Pandas DataFrame Describe 输出进行排序(早期解决方案不起作用)的主要内容,如果未能解决你的问题,请参考以下文章

pandas对dataframe进行排序:单数据列排序多数据列排序NA值排序位置排序算法

Pandas 对 DataFrame 中的列 MultiIndex 使用多行

Python/Pandas:通过匹配的索引标准对 Dataframe 进行子集化

按日期对 Pandas DataFrame 进行分组

pandas使用replace函数替换dataframe中的值:replace函数使用正则表达式对dataframe中的值进行替换

使用 ix() 方法对带有负索引的 pandas DataFrame 进行切片