1 回答

TA貢獻(xiàn)1818條經(jīng)驗 獲得超7個贊
使用map和dictionary- 首先通過鍵中的新名稱和值中的列表創(chuàng)建字典,然后在字典理解中相互交換到平面字典:
d = {'short':short,
'intermediate':inter,
'long':long,
'plate':plate,
'road':road}
d1 = {k: oldk for oldk, oldv in d.items() for k in oldv}
df['Type'] = df['Race'].map(d1)
print (df)
Race Start Mid Race Total Laps DRIVER RATING Type
0 1 5 23 207 105.2 plate
1 2 16 7 325 94.2 intermediate
2 3 10 2 267 106.1 intermediate
3 4 5 11 311 80.0 short
4 5 6 3 200 113.0 long
如果想要將前 4 個類別中不匹配的所有值設(shè)置為從第一個字典中road刪除road并添加fillna所有不匹配的值:
d = {'short':short,
'intermediate':inter,
'long':long,
'plate':plate}
d1 = {k: oldk for oldk, oldv in d.items() for k in oldv}
df['Type'] = df['Race'].map(d1).fillna('road')
詳情:
print (d1)
{
4: 'short', 6: 'short',
8: 'short', 9: 'short',
11: 'short', 20: 'short',
24: 'short', 28: 'short',
30: 'short', 33: 'short',
35: 'short', 2: 'intermediate',
3: 'intermediate', 7: 'intermediate',
12: 'intermediate', 13: 'intermediate',
17: 'intermediate', 19: 'intermediate',
25: 'intermediate', 27: 'intermediate',
32: 'intermediate', 34: 'intermediate',
36: 'intermediate', 5: 'long',
14: 'long', 15: 'long',
21: 'long', 23: 'long',
26: 'long', 1: 'plate',
10: 'plate', 18: 'plate',
31: 'plate', 16: 'road',
22: 'road', 29: 'road'
}
添加回答
舉報