我有一个Pandas数据框架,有两列我感兴趣的内容。一个分类标签和一个时间戳。据推测,我想做的事情也适用于有序的数字数据。该数据框架已经按时间戳升序排序了。我想找出时间跨度最长的标签,只选择原始数据框中与之相关的值。
我已经尝试按标签对df进行分组,计算差值并成功地选择了最大值(最长的时间窗口),然而我很难找到一个表达式来使用这些信息选择原始df中的相应数值。
考虑一下这个有数值的例子。
d = {'cat': ['A','A','A','A','A','A','B','B','B','B','C','C','C','C','C','C','C'],
'val': [1,3,5,6,8,9,0,5,10,20,4,5,6,7,8,9,10]}
df = pd.DataFrame(data = d)
在这里,我期待着与df.loc[df.cat == 'B']
相当的东西,因为B在所有类别中具有最大的差异。
df.groupby('cat').val.apply(lambda x: x.max() - x.min()).max()
给我提供了正确的差异,但我不知道如何用它来选择原始df中的正确类别。