我有一列(資料框)具有如下所示的數值:
| 數字 |
|---|
| 1 |
| 2 |
| 4 |
| 16 |
| 8 |
| 2 |
我有下一個串列:
asia = [22, 23, 0, 1, 2, 3, 4, 5, 6, 7]
asia_europe = [8]
europe = [9, 10, 11, 12]
europe_america = [13, 14, 15, 16]
america = [17, 18, 19, 20, 21]
我希望將列中的數字替換為來自串列的各自文本,以便我的資料框如下所示:
| 數字 | 新列 |
|---|---|
| 1 | 亞洲 |
| 2 | 亞洲 |
| 4 | 亞洲 |
| 16 | 歐美 |
| 8 | 亞洲_歐洲 |
| 2 | 亞洲 |
我不知道是否有辦法使用熊貓來做到這一點,或者我是否必須使用 for 回圈。
uj5u.com熱心網友回復:
您需要構建一個字典以從數字中參考該區域。為此,字典理解很方便:
d = dict(asia = [22, 23, 0, 1, 2, 3, 4, 5, 6, 7],
asia_europe = [8],
europe = [9, 10, 11, 12],
europe_america = [13, 14, 15, 16],
america = [17, 18, 19, 20, 21])
d2 = {v:k for k,l in d.items() for v in l}
# {0: 'asia',
# 1: 'asia',
# ...
# 21: 'america'}
然后map是區域的值:
df['New Column'] = df['Number'].map(d2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/420948.html
標籤:
