繁体   English   中英

熊猫用字典填充列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM