我有一个以下格式的数据框对象:
$_SESSION
我想通过sessionId将上述数据帧分组,然后找到每个组的最后一个元素时间戳和第一个元素时间戳的时差。到目前为止,我能够做到这一点:
if(isset($_SESSION['error'])){
echo($_SESSION['error']);
unset($_SESSION['error']);
}
上述方法的问题是我无法在创建的各个组中循环,因为未重置索引。从上面的代码中,我得到以下格式的组:
第一组
_id botId id sessionId timestamp intentStatus
0 5ba2a04 tony 9336 asdg23eas 1537385724842 NotHandled
1 5babb04 tony 0434 bbdg23eas 1537385722365 Handled
2 6ba2a04 tony 7336 bbdg23eas 1537385932445 NotHandled
3 7babb04 tony 0454 asdg23eas 1537385038234 Handled
第二组
groupBySession = df.groupby('sessionId')
for name, group in groupBySession:
group = group.reset_index(drop=True)
如果您注意到,索引将被替换并从0开始。但是,当我尝试将第二组的第一个元素的第一个元素打印为
时 _id botId id sessionId timestamp intentStatus
0 5ba2a04 tony 9336 asdg23eas 1537385724842 NotHandled
1 7babb04 tony 0454 asdg23eas 1537385724842 NotHandled
我遇到以下错误:
_id botId id sessionId timestamp intentStatus
0 5babb04 tony 0434 bbdg23eas 1537385722365 Handled
1 6ba2a04 tony 7336 bbdg23eas 1537385932445 NotHandled
我有做错或遗漏的事情吗?有没有更好的方法来实现这一点?
答案 0 :(得分:0)
要遍历groupby,然后遍历每个组的各个行:
for name, group in groupBySession:
for index, row in group.iterrows():
row['whtevr col']