【发布时间】:2021-05-22 11:32:26
【问题描述】:
给定以下数据框
import pandas as pd
df = pd.DataFrame({'visited': ['2015-3-4', '2015-3-5','2015-3-6','2016-3-4', '2016-3-6', '2016-3-8'],'name':['John','John','John','Mary','Mary','Mary']})
df['visited']=pd.to_datetime(df['visited'])
visited name
0 2015-03-01 John
1 2015-03-05 John
2 2015-03-06 John
3 2016-03-04 Mary
4 2016-03-06 Mary
5 2016-03-08 Mary
我希望计算两个人最后一次访问的时间间隔,在这个例子中,结果应该是
last_visited_interval name
0 1 John
1 2 Mary
由于“2015-3-5”、“2015-3-6”的间隔为 1,“2016-3-6”、“2016-3-8”的间隔为 2
我试过了
df.groupby('name').agg(last_visited_interval=('visited',lambda x: x.diff().dt.days.last())),
但得到了例外
last() 缺少 1 个必需的位置参数:'offset'
我该怎么做?
【问题讨论】:
标签: python-3.x pandas pandas-groupby