Мне нужно получить процентное изменение нескольких столбцов.
import pandas as pd
t="""Year\tChild\tBehaviour
1987\tBoy\tGood
1987\tGirl\tGood
1987\tBoy\tBad
1987\tGirl\tBad
2020\tBoy\tBad
2020\tBoy\tBad
2020\tGirl\tBad
2020\tGirl\tBad"""
from io import StringIO
df=pd.read_table(StringIO(t))
pv=pd.crosstab(df["Child"], [df["Year"], df["Behaviour"]])
print(pv)
print(pv[2020]/pv[1987]-1)
В жестоком мире будущего больше нет хороших детей, и это проблема, потому что я получаю NaN
вместо -1
(-100%):
Year 1987 2020
Behaviour Bad Good Bad
Child
Boy 1 1 2
Girl 1 1 2
Behaviour Bad Good
Child
Boy 1 NaN
Girl 1 NaN
Как это можно решить в общем случае? Нужно ли заранее добавлять отсутствующие столбцы, заполненные нулями? Или есть другой способ получить процентное изменение