按特定值排序

问题描述 投票:1回答:2

我有一个包含文本及其TFIDF分数的列表:

[['penguji', 117    0.594552 Name: rank, dtype: float64], 
 ['saat', 126    0.263102 Name: rank, dtype: float64], 
 ['melakukan', 92    0.223703 Name: rank, dtype: float64], 
 ['ini', 60    0.772189 Name: rank, dtype: float64], 
 ['kebenaran', 73    0.318094 Name: rank, dtype: float64], 
 ['selain', 136    0.234254 Name: rank, dtype: float64], 
 ['khusus', 76    0.553491 Name: rank, dtype: float64], 
 ['dan', 31    0.782068 Name: rank, dtype: float64],...]

然后我想对分数进行排序,所以我将其编码为:

TFIDF_Score.sort()
print('Sorted list:', TFIDF_Score)

结果是对文本进行排序,实际上,预期的输出是对分数进行排序,如下所示:

[['dan', 31    0.782068 Name: rank, dtype: float64],
 ['ini', 60    0.772189 Name: rank, dtype: float64], 
 ['penguji', 117    0.594552 Name: rank, dtype: float64],
 ['khusus', 76    0.553491 Name: rank, dtype: float64], 
 ['kebenaran', 73    0.318094 Name: rank, dtype: float64], 
 ['saat', 126    0.263102 Name: rank, dtype: float64],
 ['selain', 136    0.234254 Name: rank, dtype: float64], 
 ['melakukan', 92    0.223703 Name: rank, dtype: float64],...] 

如何处理循环?仍然感谢

python list loops sorting tf-idf
2个回答
0
投票

假设第二个元素为pandas.Series,请将sortedkey结合使用:

import pandas as pd

l = [['aaa', pd.Series([0.2])],
     ['bbb', pd.Series([0.1])]]

sorted(l, key=lambda x: x[1].values, reverse=True)

输出:

[['aaa', 0    0.2  dtype: float64], 
 ['bbb', 0    0.1  dtype: float64]]

0
投票

尝试使用sorted

print(sorted(TFIDF_Score, key=lambda x: -x[2]))
© www.soinside.com 2019 - 2024. All rights reserved.