Сложение с заполнением дыр в Pandas
Две таблицы с разными метками
строк можно сложить через метод
add: он складывает ячейки
с одинаковыми метками. Если
данные есть только с одной
стороны, в сумме обычно получается
пропуск, но перед сложением
«дыру» можно считать нулём -
в коде для этого передают число.
Сравним обычное сложение знаком
+ и метод add с
заменой пропуска на ноль на
одних и тех же таблицах:
import pandas as pd
east = pd.DataFrame(
{'sold': [100, 120]},
index=['Jan', 'Feb'],
)
west = pd.DataFrame(
{'sold': [80, 90, 70]},
index=['Feb', 'Mar', 'Apr'],
)
print(east + west) # выведет sold
# Apr NaN
# Feb 200.0
# Jan NaN
# Mar NaN
Совпала только метка Feb,
остальные строки дали пропуск.
Тот же приём через метод
add, если отсутствующую
сторону трактовать как ноль:
import pandas as pd
east = pd.DataFrame(
{'sold': [100, 120]},
index=['Jan', 'Feb'],
)
west = pd.DataFrame(
{'sold': [80, 90, 70]},
index=['Feb', 'Mar', 'Apr'],
)
print(east.add(west, fill_value=0))
# выведет sold
# Apr 70.0
# Feb 200.0
# Jan 100.0
# Mar 90.0
Создайте две таблицы с столбцом
pay: у первой метки
Jan, Feb, у второй
Feb, Mar. Выведите
их сумму так, чтобы там, где
не хватало одной таблицы,
считалось ноль.
Есть ряды баллов с метками
A, B и B,
C, D. Сложите их
по меткам с нулём на пустых
местах и выведите результат.
Соберите таблицы расхода по
месяцам Apr, May
и May, Jun, Jul.
Сначала сложите таблицы как
обычно и выведите результат,
затем получите сумму, где
нет данных только с одной
стороны, это ноль, и выведите
её.