我有一个数据框,其中包含美国各地玉米生产值(maiz_a)的值.数据按纬度和经度(yx)组织,也按州和县组织.许多特定纬度和经度属于同一个县,这会为同一个州和县提供许多重复条目,但值不同.以下是一个例子:

         x          y           maiz_a  maiz_pct    name_adm1   name_adm2
62748   -89.875000  41.625000   49642.6 0.000155    Illinois    Whiteside
29499   -98.041667  40.791667   49621.1 0.000309    Nebraska    Hamilton
28101   -98.208333  40.791667   48866.9 0.000462    Nebraska    Hamilton
24910   -98.041667  40.958333   48741.3 0.000614    Nebraska    Hamilton
28615   -97.958333  40.958333   48538.8 0.000765    Nebraska    Hamilton
24697   -97.875000  40.791667   48536.3 0.000916    Nebraska    Hamilton
64127   -89.791667  41.625000   48448.2 0.001067    Illinois    Whiteside

注意"内布拉斯加州"和"汉密尔顿"的组合中有多少个是name_adm1name_adm2.我想删除重复项,但根据maiz_amaiz_pct将所有重复项汇总为一行.此外,新格式化的数据帧应该只包含xy的第一个实例,显然应该保留name_adm1name_adm2.

推荐答案

use groupby and agg
This allows you to specify how you want to aggregate each specific column.

df.groupby(['name_adm1', 'name_adm2'], as_index=False).agg(
    {'x': 'first', 'y': 'first', 'maiz_a': 'sum', 'maiz_pct': 'sum'}
)

  name_adm1  name_adm2          x          y    maiz_a  maiz_pct
0  Illinois  Whiteside -89.875000  41.625000   98090.8  0.001222
1  Nebraska   Hamilton -98.041667  40.791667  244304.4  0.003066

Python-3.x相关问答推荐

根据收件箱内部的值以行降序的特定顺序重新排序列

PythonPandas 创建一个列并添加到DataFrame

While循环不停止地等待,直到时间.睡眠结束

如何在M x N数组的行中找到所有值的组合

我正在try 从 10*3 矩阵中删除随机值并将其变为 10*2 矩阵

Python-Django 设置 Pandas DataFrame 的多索引不会分组/合并最后一个索引

以特定方式重新排列 pandas 数据框的列

当我在正则表达式末尾使用斜杠时,为什么会得到不同的结果?

找到在指定列的另一个分组中存在重复的行.

如何提高 snowpark 程序的性能?

按字母顺序排序列表 (OrderFilter),条件是值为 '' 的条目位于列表 DRF 的末尾

如果值超出上下限(异常值处理),则将值的数据框替换为 np.nan

判断是否存在大文件而不下载它

为什么不切换到 Python 3.x?

创建日志(log)文件

Pandas 的 EMA 与股票的 EMA 不匹配?

类方法和实例方法同名

将字符串拆分为最大长度 X 的片段 - 仅在空格处拆分

python - Pandas - Dataframe.set_index - 如何保留旧的索引列

为什么变量 = 对象不像变量 = 数字那样工作