我正在尝试获取每组条目的时间跨度(时间序列)。条目未排序。在熊猫中,有没有比使用max-min更有效的方法?我已经尝试过timedelta和period函数,但它们不返回我需要的东西。
import pandas as pd
tt = pd.DataFrame([
[1,'2018-3-1' ],
[1,'2018-2-3' ],
[1,'2018-5-2' ],
[1,'2018-4-5' ],
[2,'2017-3-10' ],
[2,'2017-1-12' ],
[2,'2017-5-15' ],
[2,'2017-2-14' ]
],columns=['group','entry'])
tt.entry = pd.to_datetime(tt.entry)
tt.groupby('group')['entry'].apply(lambda x: max(x)-min(x))
# group
# 1 88 days
# 2 123 days
# Name: entry, dtype: timedelta64[ns]
答案 0 :(得分:2)
这是ptp
到numpy
的一种方式
tt.groupby('group')['entry'].apply(np.ptp)
Out[773]:
group
1 88 days
2 123 days
Name: entry, dtype: timedelta64[ns]