Pandas 1.1.4
MRE:
mre_df = pd.DataFrame({"dates":["2021-05-01", "2021-05-02", "2021-05-03","2021-05-04"],
"click":[3,2,3,4],
"imps":[123,122,444,443]})
mre_df["dates"] = pd.to_datetime(mre_df["dates"], format="%Y-%m-%d")
mre_df.set_index("dates", inplace=True)
mre_df["ctr"] = mre_df["click"]/mre_df["imps"]
mre_df:
click imps ctr
dates
2021-05-01 3 123 0.024390
2021-05-02 2 122 0.016393
2021-05-03 3 444 0.006757
2021-05-04 4 443 0.009029
I want to multiply ctr by a value however only after "2021-05-02" into new column.
This is my take however looking for more stable, clean, and efficient way. EDIT:SettingWithCopyWarning part has been edited thanks to HenryEcker
mre_df["rel_ctr"] = mre_df["ctr"]
mre_df.loc["2021-05-03":, "rel_ctr"] = mre_df.loc["2021-05-03":, "rel_ctr"] * 1.2
outputting
click imps ctr rel_ctr
dates
2021-05-01 3 123 0.024390 0.024390
2021-05-02 2 122 0.016393 0.016393
2021-05-03 3 444 0.006757 0.008108
2021-05-04 4 443 0.009029 0.010835