Я пытаюсь заменить пустые значения только в столбце 2 значениями словаря путем сопоставления значений в столбце 1 с ключами в словаре.
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
- Я создал диктат из результатов {страна, TR (среднее)} = (k, v)
- Я создал код, который заменяет значения в налоговой ставке соответствующей стране в dict
ПРИМЕЧАНИЕ: он заменяет все значения в налоговой ставке, а не только нулевые значения
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 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%