gpt4 book ai didi

python - 使用给定的输入列表对 DataFrame 列进行排序

转载 作者:行者123 更新时间:2023-11-28 22:11:27 24 4
gpt4 key购买 nike

您好,我想使用给定的输入列表值对 DataFrame 列进行排序。我的列表看起来像:

inputlist
[309.0, 585.0, 221.0, 789.0, 195.0, 354.0, 307.0, 698.0, 426.0]

DataFrame 是:

  val    kaywords

195 keyword3
221 keyword5
307 keyword8
309 keyword9
354 keyword0
426 keyword1
585 keyword2
698 keyword4
789 keyword33

在这里,我想根据给定的“输入列表”对 DataFrame 列“val”进行排序。

我期待以下输出:

val    kaywords

309 keyword9
585 keyword2
221 keyword5
789 keyword33
195 keyword3
354 keyword0
307 keyword8
698 keyword4
426 keyword1

最佳答案

使用有序的分类,但首先将列表的值转换为整数:

inputlist = [309.0, 585.0, 221.0, 789.0, 195.0, 354.0, 307.0, 698.0, 426.0]

df['val'] = pd.Categorical(df['val'], ordered=True, categories=[int(x) for x in inputlist])
df = df.sort_values('val')
print (df)
val kaywords
3 309 keyword9
6 585 keyword2
1 221 keyword5
8 789 keyword33
0 195 keyword3
4 354 keyword0
2 307 keyword8
7 698 keyword4
5 426 keyword1

另一种想法,如果 val 中的所有值都存在于 inputlist 中:

inputlist = [int(x) for x in inputlist]
df = df.set_index('val').reindex(inputlist).reset_index()

关于python - 使用给定的输入列表对 DataFrame 列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55672247/

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