gpt4 book ai didi

python - 如何使用键对 Pandas DataFrame 进行排序?

转载 作者:行者123 更新时间:2023-12-04 00:30:14 25 4
gpt4 key购买 nike

我正在寻找一种对 Pandas DataFrame 进行排序的方法。 pd.DataFrame.sort_values不接受按键功能。我可以将其转换为列表并将 key 应用于 sorted功能,但这会很慢。另一种方式似乎与分类索引有关。我没有固定的行数,所以我不知道分类索引是否适用。
我已经给出了我想要排序的数据类型的示例:
输入数据帧:

     clouds  fluff
0 {[} 1
1 >>> 2
2 {1 3
3 123 4
4 AAsda 5
5 aad 6
输出数据帧:
     clouds  fluff
0 >>> 2
1 {[} 1
2 {1 3
3 123 4
4 aad 6
5 AAsda 5
排序规则(优先级):
  • First special characters (sort by ascii among themselves)

  • Next is by numbers

  • next is by lower case alphabets (lexicographical)

  • next is Capital case alphabets (lexicographical)


在普通的 python 中,我会这样做
from functools import cmp_to_key

def ks(a, b):
# "Not exactly this but similar"
if a.isupper():
return -1
else:
return 1
案例
sorted(['aa', 'AA', 'dd', 'DD'], key=cmp_to_key(ks))
答案:
['DD', 'AA', 'aa', 'dd']
你会如何用 Pandas 做到这一点?

最佳答案

从 Pandas 1.1.0 开始,pandas.DataFrame.sort_values接受一个参数 key类型可调用。
所以在这种情况下,我们将使用:df.sort_values(by='clouds', key=kf)哪里kf是在类型 Series 上运行的关键函数。接受并返回系列。

关于python - 如何使用键对 Pandas DataFrame 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52475458/

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