Mam ramkę danych z nazwami kursów dla każdego roku. Muszę znaleźć czas w miesiącach, począwszy od roku 2016.Przyrost wypełnienia Pandy w tył o 12 miesięcy
from io import StringIO
import pandas as pd
u_cols = ['page_id','web_id']
audit_trail = StringIO('''
year_id | web_id
2012|efg
2013|abc
2014| xyz
2015| pqr
2016| mnp
''')
df11 = pd.read_csv(audit_trail, sep="|", names = u_cols )
Jak dodać miesięcy w nowej kolumnie zaczynając od najwyższego (czyli dno jak bfill?)
Ostateczne dane ramki będą wyglądać tak ...
u_cols = ['page_id','web_id' , 'months']
audit_trail = StringIO('''
year_id | web_id | months
2012|efg | 60
2013|abc | 48
2014| xyz | 36
2015| pqr | 24
2016| mnp | 12
''')
df12 = pd.read_csv(audit_trail, sep="|", names = u_cols )
Niektóre z odpowiedzi nie biorą pod uwagę, że może być wiele kursów. Aktualizacja danych przykładowych ...
from io import StringIO
import pandas as pd
u_cols = ['course_name','page_id','web_id']
audit_trail = StringIO('''
course_name| year_id | web_id
a|2012|efg
a|2013|abc
a|2014| xyz
a|2015| pqr
a|2016| mnp
b|2014| xyz
b|2015| pqr
b|2016| mnp
''')
df11 = pd.read_csv(audit_trail, sep="|", names = u_cols )
Nice! Zapomniałem o 'transform' nie wymagającym indeksu. – piRSquared