我有以下df
cluster_id date
1 2018-01-02
1 2018-02-01
1 2018-03-30
2 2018-04-01
2 2018-04-23
2 2018-05-18
3 2018-06-01
3 2018-07-30
3 2018-09-30
我喜欢创建一个布尔列recur_pmt
,如果每个簇(df.groupby('cluster_id')
)中date
的连续值之间的所有差异都是30 < x < 40
,则将其设置为True
;否则{
cluster_id date recur_pmt
1 2018-01-02 False
1 2018-02-01 False
1 2018-03-30 False
2 2018-04-01 True
2 2018-04-23 True
2 2018-05-18 True
3 2018-06-01 False
3 2018-07-30 False
3 2018-09-30 False
我试过了
df['recur_pmt'] = df.groupby('cluster_id')['date'].apply(
lambda x: (20 < x.diff().dropna().dt.days < 40).all())
但它没有起作用。我还想知道在这种情况下它是否也可以使用transform
将} 和参数
transform
与^{inclusive=False
一起使用:相关问题 更多 >
编程相关推荐