使用以下 DF:
A B
0 a 1
1 b 2
2 NaN 1
3 NaN 2
Run Code Online (Sandbox Code Playgroud)
我想A根据 的数字表示替换 NaN 值B,以获得:
A B
0 a 1
1 b 2
2 a 1
3 b 2
Run Code Online (Sandbox Code Playgroud)
我建立了一个 B/A 值字典: {1 : 'a', 2: 'b'}
如何将更改应用于 NaN 值?
d = {1 : 'a', 2: 'b'}
df.A = df.A.fillna(df.B.map(d))
print (df)
A B
0 a 1
1 b 2
2 a 1
3 b 2
Run Code Online (Sandbox Code Playgroud)
我建议使用map,因为replace是slowier并且如果不匹配map,返回缺失值(如原)没有价值B:
df["A"] = df["A"].fillna(df["B"].replace({1 : 'a', 2: 'b'}))
print (df)
A B
0 a 1
1 b 2
2 a 1
3 3 3 <- changed last value to 3
Run Code Online (Sandbox Code Playgroud)
d = {1 : 'a', 2: 'b'}
df.A = df.A.fillna(df.B.map(d))
print (df)
A B
0 a 1
1 b 2
2 a 1
3 NaN 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |