我想使用 df_selected = df_targets.head(N)
根据特定列的条目选择 Pandas 数据框中的顶部条目。
每个条目都有一个 target
值(按重要性排序):
Likely Supporter, GOTV, Persuasion, Persuasion+GOTV
不幸的是,如果我这样做
df_targets = df_targets.sort("target")
排序将按字母顺序排列( GOTV
, Likely Supporter
,…)。
我希望有一个像 list_ordering
这样的关键字,如下所示:
my_list = ["Likely Supporter", "GOTV", "Persuasion", "Persuasion+GOTV"]
df_targets = df_targets.sort("target", list_ordering=my_list)
为了处理这个问题,我创建了一个字典:
dict_targets = OrderedDict()
dict_targets["Likely Supporter"] = "0 Likely Supporter"
dict_targets["GOTV"] = "1 GOTV"
dict_targets["Persuasion"] = "2 Persuasion"
dict_targets["Persuasion+GOTV"] = "3 Persuasion+GOTV"
,但这似乎是一种非 pythonic 方法。
建议将不胜感激!
原文由 elzurdo 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为你需要
Categorical
参数ordered=True
然后按sort_values
排序,效果很好:检查文档
Categorical
: