【发布时间】:2020-12-30 05:26:40
【问题描述】:
分组后,我想创建一个新列,其中包含时间序列中过去条目的唯一值。
尝试使用 nunique 变换,但它给出了整个组的唯一值
data={'user':['a','a','b','a','b','a','a','b'],
'time':[1,1.1,1.2,1.2,1.3,1.3,1.3,1.3],'prod': ['k','k','t','t','y','k','z','x']}
df=pd.DataFrame(data)
df
user time prod
0 a 1.0 k
1 a 1.1 k
2 b 1.2 t
3 a 1.2 t
4 b 1.3 y
5 a 1.3 k
6 a 1.4 z
7 b 1.4 x
现在我想要的是 gropby('user',sort='time') 并获取唯一的数量 'prod' 列中的值逐个条目。
预期输出:
user time prod uniq_ebe
0 a 1.0 k 1
1 a 1.1 k 1
2 b 1.2 t 1
3 a 1.2 t 2
4 b 1.3 y 2
5 a 1.3 k 2
6 a 1.4 z 3
7 b 1.4 x 3
按用户排序(输出):
user time prod unique_ebe
0 a 1.0 k 1
1 a 1.1 k 1
2 a 1.2 t 2
3 a 1.3 k 2
4 a 1.4 z 3
5 b 1.2 t 1
6 b 1.3 y 2
7 b 1.4 x 3
【问题讨论】:
标签: python python-3.x pandas pandas-groupby