Mis*_*sha 5 python dictionary pandas
是否可以将字典应用于具有多个值的列?
Unit Code
0 243 A
1 106 B
2 678 C
3 852 A, B
4 239 A, C
5 217 A, B, C
6 642 D
7 932 E, F, G, H
8 213 A, C, E, H
Run Code Online (Sandbox Code Playgroud)
如果我的字典是这样的......
Unit Code
0 243 A
1 106 B
2 678 C
3 852 A, B
4 239 A, C
5 217 A, B, C
6 642 D
7 932 E, F, G, H
8 213 A, C, E, H
Run Code Online (Sandbox Code Playgroud)
我应用之后...
dictex = {
'A' : 'Alpha',
'B' : 'Bravo',
'C' : 'Charlie',
'D' : 'Delta',
'E' : 'Echo',
'F' : 'Foxtrot',
'G' : 'Golf',
'H' : 'Hotel',
None : 'NULL'
}
Run Code Online (Sandbox Code Playgroud)
我得到以下内容(这不是我想要的)。
Unit Code Phonetic
0 243 A Alpha
1 106 B Bravo
2 678 C Charlie
3 852 A, B NaN
4 239 A, C NaN
5 217 A, B, C NaN
6 642 D Delta
7 932 E, F, G, H NaN
8 213 A, C, E, H NaN
Run Code Online (Sandbox Code Playgroud)
我想要的是以下内容。
Unit Code Phonetic
0 243 A Alpha
1 106 B Bravo
2 678 C Charlie
3 852 A, B Alpha, Bravo
4 239 A, C Alpha, Charlie
5 217 A, B, C Alpha, Bravo, Charlie
6 642 D Delta
7 932 E, F, G, H Echo, Foxtrot, Golf, Hotel
8 213 A, C, E, H Alpha, Charlie, Echo, Hotel
Run Code Online (Sandbox Code Playgroud)
如何将字典映射到列中的每个值?
尝试:
df["Phonetic"] = df["Code"].apply(
lambda x: ", ".join(dictex.get(v) for v in map(str.strip, x.split(",")))
)
print(df)
Run Code Online (Sandbox Code Playgroud)
印刷:
Unit Code Phonetic
0 243 A Alpha
1 106 B Bravo
2 678 C Charlie
3 852 A, B Alpha, Bravo
4 239 A, C Alpha, Charlie
5 217 A, B, C Alpha, Bravo, Charlie
6 642 D Delta
7 932 E, F, G, H Echo, Foxtrot, Golf, Hotel
8 213 A, C, E, H Alpha, Charlie, Echo, Hotel
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |