我有一个看起来像这样的 CSV(当用 带入 pandas Dataframe 时
read_csv()
,它看起来是一样的)。
我想根据以下逻辑更新列ad_requests中的值:
对于给定的行,如果ad_requests有值,则不要理会它。否则,将前一行的ad_requests值减去前一行的impresions值给它。所以在第一个例子中,我们希望得到:
我部分到达那里:
df["ad_requests"] = [i if not pd.isnull(i) else ??? for i in df["ad_requests"]]
这就是我卡住的地方。之后else
,我想“返回”并访问前一个“行”,尽管我知道这不是 pandas 的用途。需要注意的另一件事是,行将始终按列ad_tag_name分为三组。如果 I pd.groupby["ad_tag_name"]
,我可以把它变成 alist
并开始切片和索引,但是我认为在 pandas 中必须有更好的方法来做到这一点(因为有很多东西)。
蟒蛇:2.7.10
熊猫:0.18.0