此问题是此问题的附加内容:filter multi-indexed grouped pandas dataframe
我想获得timestamp
,其中value
在date
之后开始大于零,作为每个单独的new_date
的新列id
示例输入数据:
id timestamp date value
1 2001-01-01 2001-05-01 1
1 2001-10-01 2001-05-01 0
1 2001-10-02 2001-05-01 1
1 2001-10-03 2001-05-01 0
1 2001-10-04 2001-05-01 1
2 2001-01-01 2001-05-01 1
2 2001-10-01 2001-05-01 0
2 2001-10-02 2001-05-01 0
2 2001-10-03 2001-05-01 0
2 2001-10-04 2001-05-01 1
想要的输出数据示例:
id timestamp date value new_date
1 2001-01-01 2001-05-01 1 2001-10-02
1 2001-10-01 2001-05-01 0 2001-10-02
1 2001-10-02 2001-05-01 1 2001-10-02
1 2001-10-03 2001-05-01 0 2001-10-02
1 2001-10-04 2001-05-01 1 2001-10-02
2 2001-01-01 2001-05-01 1 2001-10-04
2 2001-10-01 2001-05-01 0 2001-10-04
2 2001-10-02 2001-05-01 0 2001-10-04
2 2001-10-03 2001-05-01 0 2001-10-04
2 2001-10-04 2001-05-01 1 2001-10-04
答案 0 :(得分:1)
如果某个组没有匹配项,则更简单的解决方案也可以工作,首先过滤Accept: application/json
链掩码,将DataFrame
乘以Series.gt
,然后按位date
替换{{1} },然后通过DataFrame.drop_duplicates
删除重复项,创建AND
并最后使用Series.map
:
0