請告知如何以最佳方式解決以下任務:
我有熊貓資料框:
| 第一 | 第二 | 第三名 |
|---|---|---|
| 1 | 8 | 10 |
| 2 | 1 | 0 |
| 5 | 1 | 0 |
| 1 | 3 | 0 |
df.shape 是 (100,3)。第一列值從 0 到 5,第二列:0-8,第三列:0-10
和 3 個具有不同鍵值的字典。
dict1 = {0: 'a',
1: 'b', ..., 5: 'xx'}
dict2 = {0: 'aa',
1: 'bb', ..., 8: 'yy'}
dict2 = {0: 'aaa',
1: 'bbb', ..., 10: 'zzz'}
問題是如何用字典中的鍵替換資料幀中的值?
類似的東西,但對于所有列:
df['1st'].map({v: k for v, k in enumerate(dict1)}).to_frame()
uj5u.com熱心網友回復:
使用zip與Series.map在串列中的列:
dict1 = {0: 'a', 1: 'b', 3:'r',2:'y', 5: 'xx'}
dict2 = {0: 'aa',6:'ww', 1: 'bb', 8: 'yy'}
dict3 = {0: 'aaa', 3:'ree',5:'eey', 1: 'bbb', 10: 'zzz'}
for c, d in zip(['1st', '2nd', '3rd'], [dict1, dict2, dict3]):
df[c] = df[c].map(d)
print (df)
1st 2nd 3rd
0 b bb zzz
1 b ww ree
2 r yy eey
3 xx bb eey
4 y bb zzz
5 xx bb bbb
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/392962.html
