Python 如何在数据帧中对lat-lon对进行分组?
我有一个数据框,看起来像:Python 如何在数据帧中对lat-lon对进行分组?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据框,看起来像: lon lat -77.487 39.044 -77.487 39.044 -122.031 37.354 -77.487 39.044 我想将这些lon-lat对与结果计数分组,如下所示: lon lat count -77.487 39.044 3 -122.031 37.354 1 我该怎么做?group()函数只允许按一列进行分组。请从以下链接查找文档 您可以使用并重命名创建的
lon lat
-77.487 39.044
-77.487 39.044
-122.031 37.354
-77.487 39.044
我想将这些lon-lat对与结果计数分组,如下所示:
lon lat count
-77.487 39.044 3
-122.031 37.354 1
我该怎么做?
group()
函数只允许按一列进行分组。请从以下链接查找文档
您可以使用并重命名创建的列,后跟reset\u index
,以返回所需的dataframe
print(df.groupby(['lon', 'lat']).size().rename('count').reset_index())
lon lat count
0 -122.031 37.354 1
1 -77.487 39.044 3
您可能希望使用
.size()
而不是.count()
,因为您要查找每个组的大小(而不是每个组中未丢失的值的数量),这会将LON和LAT作为行名而不是行名返回values@DannyDavidLeybzon:这将返回包含分组列的数据帧(lat
和lon
)作为索引。如果您想将它们改为列名,请尝试df_data.groupby(['lon',lat']).size().reset_index()
@danpelota感谢您指出它。我刚刚更新了答案,以检查大小而不是计数
print(df.groupby(['lon', 'lat']).size().rename('count').reset_index())
lon lat count
0 -122.031 37.354 1
1 -77.487 39.044 3