我有这样一个数据帧:
d = pd.DataFrame({
'users': [
[('007', "us1", "us2", "time1", 'time2', 4)],
[('008', "us1", "us2", "time1", 'time2', 5)],
[('009', "us1", "us2", "time1", 'time2', 6)],
[('007', 'us2', "us3", "time1", 'time2', 4)],
[('008', 'us2', "us3", "time1", 'time2', 7)],
[('009', 'us2', "us3", "time1", 'time2', 11)],
[('001', 'us5', 'us1', "time1", 'time2', 0)],
[('008', 'us5', 'us1', "time1", 'time2', 1)],
[('007',"us3", "us2", "time1", 'time2', 2)],
[('007',"us3", "us2", "time1", 'time2', 34)],
[('009',"us3", "us2", "time1", 'time2', 67)]]
})
一个元组是(ID,user1,user2,timeAcess user1,timeAcess user2,delay),我希望结果是在一个矩阵上的用户访问ID的列表,如下所示:
另外,我只想在矩阵的列表中添加在某个delayTime
(元组的最后一部分是数字)内的Id。因此,例如,如果我决定delayTime
应该大于7,那么小于7的Id将不会添加到矩阵中
我可以提取每个用户元组访问的Id列表:
d = d.groupby(d['users'].str[1:3], sort=False)['users'].apply(list).reset_index(level=0, drop=True).reset_index()
d['IDsAcess'] = d['users'].apply(lambda x: [y[0] for y in x])
因为在这之后我被封锁了
然后您可以展平ID级别,添加一个新的us5列,并用空列表填充NAN
编辑
如果不希望某些条目进入列表,可以在
groupby
之前删除小于(或大于)首选值的行EDIT2
相关问题 更多 >
编程相关推荐