熊猫:根据多个其他列中的值填充空值



我在Pandas DataFrame中有这个:

site    channel week    value   
0   Canada  A       W01     NaN     
1   Canada  A       W02     NaN    
2   Canada  A       W03     12     
3   Canada  B       W01     NaN   
4   Canada  B       W02     NaN     
5   Canada  B       W03     66      

我需要得到这个:

site    channel week    value   
0   Canada  A       W01     12      
1   Canada  A       W02     12    
2   Canada  A       W03     12     
3   Canada  B       W01     66   
4   Canada  B       W02     66      
5   Canada  B       W03     66      

简而言之,我需要用对应于sitechannel的特定组合的值填充列value中的空值。

我该怎么做?

如果每个组的最后一个非数值始终是DataFrameGroupBy.bfill,并且所有其他值都NaNs,请使用:

df1 = df.groupby(['site', 'channel']).bfill()

如果可能的话,更好的通用解决方案,一些只NaNs组:

df1 = df.groupby(['site', 'channel']).apply(lambda x: x.bfill.ffill())   

相关内容

  • 没有找到相关文章

最新更新