我试图通过将第1列中的键与字典中的键匹配到第2列中的null值。
。Country Rate Tax Rate
Algeria 2.00% 76.90%
Angola 5.00% null
Algeria 2.00% null
Angola 5.00% null
Algeria 2.10% 76.90%
Angola 4.90% 52.10%
Algeria 2.20% 76.90%
- 我计算了平均税率购买国家。
- 我放弃了所有没有平均计算的国家:所有值null
- 我从结果{country,tr(mean(} =(k,v( 中创建了一个dict
- 我创建了代码,将税率的价值替换为 中的匹配国家
注意:它替换了税率中的所有值,而不仅仅是null值
tr = df.groupby('country')['tax rate'].mean()
tr.dropna(inplace=True)
tr_dict = tr.to_dict()
df['tax rate'] = df['country'].apply(lambda x: tr_dict.get(x))
结果
Country Rate Tax Rate
Algeria 2.00% mean of Algeria
Angola 5.00% mean of Angola
Algeria 2.00% mean of Algeria
Angola 5.00% mean of Angola
Algeria 2.10% mean of Algeria
Angola 4.90% mean of Angola
Algeria 2.20% mean of Algeria
我相信我在此代码末尾缺少某些内容,因为它可以通过" country"正确替换值,但是它正在替换所有"税率"值,而我只需要它来替换空值。
*预期结果*
Country Rate Tax Rate
Algeria 2.00% 76.90%
Angola 5.00% mean of Angola
Algeria 2.00% mean of Algeria
Angola 5.00% mean of Angola
Algeria 2.10% 76.90%
Angola 4.90% 52.10%
Algeria 2.20% 76.90%
尝试使用transform
并使用fillna
df['tax rate']=df['tax rate'].fillna(df.groupby('country')['tax rate'].transform('mean'))