You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的DataFrame中计算不同动物的经纬度中位数

为每个动物计算经纬度中位数并新增列到原DataFrame

直接使用Pandas的groupby结合transform方法就能实现需求,transform会将分组计算的中位数结果广播到原DataFrame的对应行,无需额外合并操作。

步骤示例

  1. 模拟输入数据(对应你的原始DataFrame)
import pandas as pd

df = pd.DataFrame({
    'N° Tag': ['A1', 'A1', 'A2', 'A2', 'A2', 'A3'],
    'Lat': [40.1, 40.3, 39.5, 39.7, 39.6, 41.2],
    'Lon': [-100.2, -100.4, -99.8, -99.9, -99.7, -101.1]
})
  1. 计算并新增中位数列
# 按个体标识分组,计算纬度中位数并新增列
df['Median Lat'] = df.groupby('N° Tag')['Lat'].transform('median')
# 同理计算经度中位数
df['Median Lon'] = df.groupby('N° Tag')['Lon'].transform('median')

输出结果

N° Tag   Lat    Lon  Median Lat  Median Lon
0     A1  40.1 -100.2        40.2      -100.3
1     A1  40.3 -100.4        40.2      -100.3
2     A2  39.5  -99.8        39.6       -99.8
3     A2  39.7  -99.9        39.6       -99.8
4     A2  39.6  -99.7        39.6       -99.8
5     A3  41.2 -101.1        41.2      -101.1

说明

  • groupby('N° Tag') 按个体标识对数据分组
  • transform('median') 计算每组的中位数,并将结果映射回原DataFrame的每一行,保证行数与原数据一致
  • 默认会自动跳过空值,若需强制包含空值可指定skipna=False

内容的提问来源于stack exchange,提问作者toms

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:45:39