gpt4 book ai didi

python - 按唯一组的数量对 Pandas 列进行排序

转载 作者:行者123 更新时间:2023-12-01 08:04:07 27 4
gpt4 key购买 nike

我正在尝试对 kaggle Housing Prices 中的一部分分类数据进行排序数据集。我正在尝试按唯一类别的数量对列进行排序。为了避免问题困惑,我添加了数据框的一小部分(总共 80 列)来演示问题。

    LotConfig    Street    MSZoning
0 Inside Pave RL
1 FR2 Pave RL
2 Corner Grvl RL

我的目标是对列进行排序以获得以下结果。

    MSZoning    Street    LotConfig    
0 RL Pave Inside
1 RL Pave FR2
2 RL Grvl Corner

我当前正在使用以下代码。

sorted_categories =  sorted(df.columns, key = lambda col: df[col].nunique())
df = df[sorted_categories]

有没有更好的方法来解决这个问题?我是否缺少 pandas 方法来实现此目的?

最佳答案

您可以直接调用nunique并使用结果索引您的初始DataFrame:

u = df.nunique().sort_values().index
df[u]

  MSZoning Street LotConfig
0 RL Pave Inside
1 RL Pave FR2
2 RL Grvl Corner
<小时/>

df.nunique() 将返回每列一系列唯一值。

>>> df.nunique()
LotConfig 3
Street 2
MSZoning 1
dtype: int64
<小时/>

但是,在你的小例子中,你的方法实际上比我的更快,尽管有点冗长。我会在您的实际 DataFrame 上测试这一点,因为您的方法没有不正确,如果它提高了性能,我会改用它。我相信我的方法在大框架上应该更快,因为它避免了多次调用 nunique

关于python - 按唯一组的数量对 Pandas 列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55617812/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com