[英]Pandas Fill Column with Dictionary
我有一个像这样的数据框:
A B C D
0 1 0 nan nan
1 8 0 nan nan
2 8 1 nan nan
3 2 1 nan nan
4 0 0 nan nan
5 1 1 nan nan
我有这样的字典:
dc = {'C': 5, 'D' : 10}
我想用字典填充数据帧中的nan
值,但仅对于其中B列值为0的单元格来说,我想获得以下信息:
A B C D
0 1 0 5 10
1 8 0 5 10
2 8 1 nan nan
3 2 1 nan nan
4 0 0 5 10
5 1 1 nan nan
我知道如何对数据框进行子集化,但是我找不到用字典填充值的方法; 有任何想法吗?
您可以在loc
使用fillna
其字典传递给它:
In [13]: df.loc[df.B==0,:].fillna(dc)
Out[13]:
A B C D
0 1 0 5 10
1 8 0 5 10
4 0 0 5 10
要为您的数据框执行此操作,您需要使用相同的掩码进行切片,并将上面的结果分配给它:
df.loc[df.B==0, :] = df.loc[df.B==0,:].fillna(dc)
In [15]: df
Out[15]:
A B C D
0 1 0 5 10
1 8 0 5 10
2 8 1 NaN NaN
3 2 1 NaN NaN
4 0 0 5 10
5 1 1 NaN NaN
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.