Python 如何对项目进行分组,然后遍历子组
假设我有一个数据帧,看起来像这样:Python 如何对项目进行分组,然后遍历子组,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,假设我有一个数据帧,看起来像这样: interview longitude latitude 1 A1 34.2 90.2 2 A1 54.2 23.5 3 A3 32.1 21.5 4 A4 54.3 93.1 5
interview longitude latitude
1 A1 34.2 90.2
2 A1 54.2 23.5
3 A3 32.1 21.5
4 A4 54.3 93.1
5 A2 45.1 29.5
6 A1 NaN NaN
7 A7 NaN NaN
8 A1 NaN NaN
9 A3 23.1 38.2
10 A5 -23.7 -98.4
我希望能够执行某种groupby方法,输出每个子组及其各自的经度和纬度。因此,类似这样的东西的期望输出是:
interview longitude latitude
1 A1 34.2 90.2
2 A1 54.2 23.5
6 A1 NaN NaN
8 A1 NaN NaN
5 A2 45.1 29.5
3 A3 32.1 21.5
9 A3 23.1 38.2
... and so on
所以这需要在一个循环中完成,因为我需要遍历每个子组的每一行
我的目标是,在每次面试(A1,A2,…)中,找出哪位面试官(A1,A2,…)的行程最长——基本上,我只需要能够在每个小组中进行一些计算。。我如何迭代地执行这个分组方法,以便我可以在每个子组中再次迭代地执行一个操作
谢谢 您可以在不同的组上循环:
根据您的输出,这看起来不像groupby,它看起来像一个
df.sort_值(按=['interview'、'longitude'、'latitude'],升序=False)
。对于您描述的用例,添加一列来计算距离(我假设是从/到某个常见的lat long?),然后执行df.groupby('interview').max()['distance']
当您运行type(group)时,它会返回元组。。。我需要访问数据帧,如何将这些组重新分配到tmp数据帧?更新了答案
for name, group in df.groupby('interview'):
# perform some operations on group