gpt4 book ai didi

python - Pandas:根据层次结构删除重复值

转载 作者:行者123 更新时间:2023-12-04 10:40:13 24 4
gpt4 key购买 nike

我试图删除产品编号的所有重复项,根据预定义的层次结构仅保留最高记录,其值位于单独的列中。

层次结构如下所示:

A1
A2
A3
A4
A5

整个 DataFrame 的片段 df可以在下面看到。
product_num   price_category  
101 A1
101 A3
202 A2
202 A4
302 A2
302 A5
303 A5
303 A1
304 A4
304 A3

我希望实现的所需输出如下所示。
 product_num   price_category  
101 A1
202 A2
302 A2
303 A1
304 A3

最佳答案

转换栏price_categoryordered categoricals ,所以如果使用 DataFrame.sort_values DataFrame.drop_duplicates 按层次结构删除重复项:

c = ['A1','A2','A3','A4','A5']
df['price_category'] = pd.Categorical(df['price_category'], ordered=True, categories=c)

df = df.sort_values(['product_num','price_category']).drop_duplicates('product_num')
print (df)
product_num price_category
0 101 A1
2 202 A2
4 302 A2
7 303 A1
9 304 A3

关于python - Pandas:根据层次结构删除重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59964221/

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