簡體   English   中英

我可以自定義類別代碼嗎?

[英]Can I Customize Category Codes?

我正在處理一些稱為“評級”的分類數據。 我的數據看起來像這樣(在數據框中):

AAA
AA
A
A+
BBB
BB
B
B+

我有大約 25 個類別。 現在,我正在嘗試獲取與此 Ratings 字段相關的相應字段。 我想看看這個:

30
29
28
27
26
25
24
23

... 最后降到 1。 到目前為止,我已經測試了這一小段代碼。

modDF['Rating'] = modDF['Rating'].astype('category')
modDF['RatingCode'] = modDF['Rating'].cat.codes

這給了我類別,但不是根據我想使用的邏輯。 它幾乎看起來像是在工作,但順序相反,但帶有“+”字符的評級看起來很奇怪。 有沒有辦法根據某種 vlookup 或類似的東西來分配類別代碼? 謝謝。

如果您知道評級將遵循某種模式(即 XXX、XX、XX、X+),您可以執行以下操作:

import pandas as pd
import itertools
import string

# df with dummy data
df = pd.DataFrame(['AAA', 'AA', 'A', 'A+', 'BBB', 'BB', 'B', 'B+'], columns=['Ratings'])

# collect ratings and assign a decreasing value to them
ratings = [[letter*3, letter*2, letter, letter+'+'] for letter in string.ascii_uppercase]  # create all possible ratings in order
ratings = list(itertools.chain.from_iterable(ratings))  # flatten list
ratings_code = dict(zip(ratings, reversed(range(len(ratings)))))

# map rating code to original rating
df['RatingCode'] = df.Ratings.map(ratings_code)

根據您對RatingCode范圍的RatingCode ,您需要調整reversed(range(len(ratings)))或限制列表理解中使用的字母。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM