我的数据框看起来像
groupID date_time value member Session
23 2013-10-09 09:00:00 664639 Jerome 2607
23 2013-10-09 09:05:00 197290 Hence 2608
35 2013-10-09 09:10:00 470186 Ann 2608
35 2013-10-09 09:15:00 181314 Mikka 2608
35 2013-10-09 09:20:00 969427 Cristy 2609
37 2013-10-09 09:25:00 261473 James 2609
37 2013-10-09 09:30:00 3698 Oliver 2609
所以我希望这个目标而不是2607
我有1
,而不是2608
我有2
等,即进行重新索引或者映射
groupID date_time value member Session
23 2013-10-09 09:00:00 664639 Jerome 1
23 2013-10-09 09:05:00 197290 Hence 2
35 2013-10-09 09:10:00 470186 Ann 2
35 2013-10-09 09:15:00 181314 Mikka 2
35 2013-10-09 09:20:00 969427 Cristy 3
37 2013-10-09 09:25:00 261473 James 3
37 2013-10-09 09:30:00 3698 Oliver 3
在reindexing
上搜索未获得预期结果,因此您的建议将受到赞赏
答案 0 :(得分:1)
您可以做的IIUC:
df['Session'] -= 2606
看起来你的价值观正以积极的方式增长。
或者你可以定义一个dict并重新映射
session_vals = df['Session'].unique()
d = dict(zip(session_vals, np.arange(1, len(session_vals) + 1)))
df['Session'] = df['Session'].map(d)
另一种方法是使用pd.factorize
In [233]:
df['Session'] = pd.factorize(df['Session'])[0] + 1
df
Out[233]:
groupID date_time value member Session
0 23 2013-10-09 09:00:00 664639 Jerome 1
1 23 2013-10-09 09:05:00 197290 Hence 2
2 35 2013-10-09 09:10:00 470186 Ann 2
3 35 2013-10-09 09:15:00 181314 Mikka 2
4 35 2013-10-09 09:20:00 969427 Cristy 3
5 37 2013-10-09 09:25:00 261473 James 3
6 37 2013-10-09 09:30:00 3698 Oliver 3
答案 1 :(得分:0)
试试这个:
df['Session'] = np.unique(df['Session'], return_inverse=True)[1]
唯一会话将从0开始编号。