0
我有一种情况,我想添加一个新列,这个列依赖于通过基于当前行过滤DataFrame获得的值。例如:熊猫通过基于当前行的值过滤DataFrame来添加列
date happy user
0 2017-05-01 True user1
1 2017-05-02 True user1
2 2017-05-03 False user1
3 2017-05-04 True user1
4 2017-05-01 False user2
5 2017-05-02 True user2
我想增加一列previous_days_happy可以算出每个用户他们如何在目前的前一天多天很高兴。所以在这里输出将是:
date happy user prev_happy_days
0 2017-05-01 True user1 0
1 2017-05-02 True user1 1
2 2017-05-03 False user1 2
3 2017-05-04 True user1 2
4 2017-05-01 False user2 0
5 2017-05-02 True user2 0
我的研究只找到我的示例添加一列基于当前行的值。但在这里,我想获取当前行的值并使用它们来过滤DataFrame并计算一个值。
定期过滤,如:
df[df['userid'] < 1000]
没有帮助,因为以滤除价值不是恒定的,而是依赖于行。
我也尝试过groupby上的变体,并且转换为无效,我认为这是因为转换只需要一个Series而不是DataFrame。
感谢。如果数据没有按日期排序,我们可以只做'df.sort_values('date')'。 跟进:如果我只想查看过去一周的用户,我该如何修改? (我知道,我给出的具体例子是提供日期的一个坏例子)。 – lhay86
这个解决方案提供的预期输出和输出不同吗? – Satyadev
@Satyadev同意,但我认为所需的输出不一致,也许OP可以确认... – IanS