gpt4 book ai didi

python - Python 中带键的 sort_values()

转载 作者:太空宇宙 更新时间:2023-11-03 13:10:55 25 4
gpt4 key购买 nike

我有一个数据框,其中列名是时间(0:00、0:10、0:20、...、23:50)。现在,它们按字符串顺序排序(所以 0:00 是第一个,9:50 是最后一个)但我想按时间对它们进行排序(所以 0:00 是第一个,23:50 是最后一个)。

如果时间是一列,你可以使用

df = df.sort(columns='Time',key=float)

但是 1) 仅当 time 是列本身而不是列名称时才有效,并且 2) sort() 已被弃用,因此我尽量避免使用它。

我正在尝试使用

df = df.sort_index(axis = 1)

但由于列名是字符串格式,它们会根据字符串键进行排序。我试过了

df = df.sort_index(key=float, axis=1) 

但这给出了一条错误信息:

Traceback (most recent call last):
File "<ipython-input-112-5663f277da66>", line 1, in <module>
df.sort_index(key=float, axis=1)
TypeError: sort_index() got an unexpected keyword argument 'key'

有没有人知道如何解决这个问题? sort_index() - 和 sort_values() 就此而言非常烦人 - 没有关键参数!

最佳答案

尝试使用 sorted 内置函数对列进行排序,并将输出传递给数据框以进行索引。以下应作为工作示例:

import pandas as pd


records = [(2, 33, 23, 45), (3, 4, 2, 4), (4, 5, 7, 19), (4, 6, 71, 2)]
df = pd.DataFrame.from_records(records, columns = ('0:00', '23:40', '12:30', '11:23'))
df
# 0:00 23:40 12:30 11:23
# 0 2 33 23 45
# 1 3 4 2 4
# 2 4 5 7 19
# 3 4 6 71 2

df[sorted(df,key=pd.to_datetime)]

# 0:00 11:23 12:30 23:40
# 0 2 45 23 33
# 1 3 4 2 4
# 2 4 19 7 5
# 3 4 2 71 6

希望对你有帮助

关于python - Python 中带键的 sort_values(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43787091/

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