gpt4 book ai didi

python - 根据组内值的稀有性对 pandas 数据框中的列进行排序

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

我有一个抓取网站的 pandas 数据框,其中包含网站标识符、文本和网站标签。少数网站有两个标签,但由于我想首先训练一个标签分类器,所以我想为每个网站创建一个只有一个标签的数据版本(我知道这有点问题)。我的数据集中的标签不平衡(有些标签经常出现,有些标签非常罕见)。如果我删除重复的网站ID,我想首先删除非常常见的标签。这是我的带有多个标签的数据集的样子:

ID   Label   Text
1 a some text
1 b other text
1 a data
2 a words
2 c more words
3 a text
3 b short text

我的想法是根据标签的稀有性对每个网站标识符中的标签列进行排序。为此我首先会做value_counts(ascending = True)在标签列上,获取按稀有度排序的所有标签的列表。

to_sort = [c, b, a]

然后我想使用该列表按稀有度对每个网站 ID 进行排序。但我不知道该怎么做。结果应该如下所示:

ID   Label   Text
1 b other text
1 a some text
1 a data
2 c more words
2 a words
3 b short text
3 a text

然后我会使用df.drop_duplicates(subset = 'ID', keep = 'first') ,保留最稀有的标签。如何进行排序?

最佳答案

使用订购categorical ,所以可以使用sort_values :

to_sort = list('cba')

df['Label'] = pd.Categorical(df['Label'], ordered=True, categories=to_sort)

df = df.sort_values(['ID','Label'])
print (df)
ID Label Text
1 1 b other text
0 1 a some text
2 1 a data
4 2 c more words
3 2 a words
6 3 b short text
5 3 a text

关于python - 根据组内值的稀有性对 pandas 数据框中的列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53265095/

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