![](/img/trans.png)
[英]Pandas - replace all NaN values in DataFrame with empty python dict objects
[英]Python Pandas - Replace NaN values using dict
使用以下 DF:
A B
0 a 1
1 b 2
2 NaN 1
3 NaN 2
我想根据B
的数字表示替换A
的 NaN 值,以获得:
A B
0 a 1
1 b 2
2 a 1
3 b 2
我建立了一个 B/A 值字典: {1: 'a', 2: 'b'}
如何将更改应用于 NaN 值?
将Series.fillna
与Series.map
一起使用:
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
我建议使用map
因为replace
速度较慢,如果map中没有匹配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
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.