gpt4 book ai didi

python - 如何创建一个新列,显示前 5 行和剩余行作为杂项?

转载 作者:行者123 更新时间:2023-11-30 21:58:00 26 4
gpt4 key购买 nike

Python新手。我有一个数据集,其中“car”列有 87 个不同的值。我想更改该列,以在该列中显示前 10 个汽车品牌,其余 77 个将被归类为“杂项”。下面是示例演示:

In[]:  car_sales['car'].unique()

Out[]: array(['Ford', 'Mercedes-Benz', 'Nissan', 'Honda', 'Renault', 'BMW',
'Land Rover', 'Volkswagen', 'Audi', 'Chrysler', 'Jaguar',
'Mitsubishi', 'Kia', 'Porsche', 'Toyota', 'Hyundai'], dtype=object)

我试图首先将除前 5 个之外的所有其他内容都作为字典进行整理

my dict = {'Miscellaneous' :  'Nissan', 'Honda', 'Renault', 'BMW',
'Land Rover', 'Volkswagen', 'Audi', 'Chrysler', 'Jaguar'}

我现在可以继续看看我的柱车吗:

汽车

福特

梅赛德斯-奔驰

日产

奥迪

捷豹

其他

寻求帮助。谢谢

最佳答案

您可以使用pandas.Categorical来处理这些类型的问题。 分类类型还具有内存效率更高的额外优势。

示例:

cars = ['Ford', 'Mercedes-Benz', 'Nissan', 'Honda', 'Renault', 'BMW',
'Land Rover', 'Volkswagen', 'Audi', 'Chrysler', 'Jaguar',
'Mitsubishi', 'Kia', 'Porsche', 'Toyota', 'Hyundai']

df = pd.DataFrame({'cars': np.random.choice(cars, 100)})

top_5 = ['Ford', 'Mercedes-Benz', 'Nissan', 'Audi', 'Jaguar', 'Miscellaneous']

df['cars_refined'] = pd.Categorical(df['cars'], categories=top_5).fillna('Miscellaneous')

print(df.head(10))

cars cars_refined
0 Mercedes-Benz Mercedes-Benz
1 Mercedes-Benz Mercedes-Benz
2 Volkswagen Miscellaneous
3 Ford Ford
4 Mitsubishi Miscellaneous
5 Toyota Miscellaneous
6 Porsche Miscellaneous
7 Honda Miscellaneous
8 Kia Miscellaneous
9 Jaguar Jaguar

关于python - 如何创建一个新列,显示前 5 行和剩余行作为杂项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55076191/

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