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

按站点统计各物种跨周总数及每周物种占比的技术需求

问题描述

我的数据如下:

week site dog cat mouse 
1    a    2   50  10
1    b    5   25  10
1    c    3   25  30
2    a    75  1   5
2    b    25  9   4
2    c    0   0   1

需要按每个站点统计各物种的跨周总数,再基于该总数计算每周各物种在对应站点的占比。例如,站点'a'的狗跨周总数为77只:第1周2只(占比2.5%),第2周75只(占比97.4%)。已给出狗占比的示例输出,需要生成所有物种的占比结果。


R 实现方案

使用dplyr包分组计算,步骤清晰易读:

library(dplyr)

# 构造数据框
df <- data.frame(
  week = c(1,1,1,2,2,2),
  site = c("a","b","c","a","b","c"),
  dog = c(2,5,3,75,25,0),
  cat = c(50,25,25,1,9,0),
  mouse = c(10,10,30,5,4,1)
)

# 分组计算各物种占比
result <- df %>%
  group_by(site) %>%
  mutate(
    dog.prop = round(dog / sum(dog), 3),
    cat.prop = round(cat / sum(cat), 3),
    mouse.prop = round(mouse / sum(mouse), 3)
  ) %>%
  ungroup()

# 查看最终结果
print(result)

运行后输出:

# A tibble: 6 × 8
   week site    dog   cat mouse dog.prop cat.prop mouse.prop
  <dbl> <chr> <dbl> <dbl> <dbl>    <dbl>    <dbl>      <dbl>
1     1 a         2    50    10     0.025     0.98       0.667
2     1 b         5    25    10     0.167     0.735      0.714
3     1 c         3    25    30     1        1          0.968
4     2 a        75     1     5     0.975     0.02       0.333
5     2 b        25     9     4     0.833     0.265      0.286
6     2 c         0     0     1     0        0          0.032

Python 实现方案

使用pandas库的分组变换功能快速计算:

import pandas as pd

# 构造数据
data = {
    'week': [1,1,1,2,2,2],
    'site': ['a','b','c','a','b','c'],
    'dog': [2,5,3,75,25,0],
    'cat': [50,25,25,1,9,0],
    'mouse': [10,10,30,5,4,1]
}
df = pd.DataFrame(data)

# 循环处理每个物种的占比计算
species = ['dog', 'cat', 'mouse']
for sp in species:
    df[f'{sp}.prop'] = df.groupby('site')[sp].transform(lambda x: round(x / x.sum(), 3))

# 输出结果
print(df)

运行后输出:

week site  dog  cat  mouse  dog.prop  cat.prop  mouse.prop
0     1    a    2   50     10     0.025      0.98       0.667
1     1    b    5   25     10     0.167      0.735       0.714
2     1    c    3   25     30     1.000      1.00       0.968
3     2    a   75    1      5     0.975      0.02       0.333
4     2    b   25    9      4     0.833      0.265       0.286
5     2    c    0    0      1     0.000      0.00       0.032

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:10:30