在Julia中,可以使用“DataFrames.jl”包来处理数据框和按组汇总。以下是一个示例代码,它演示了如何使用“by”函数按“groupby_cols”列分组,然后使用“combine”函数计算每个组的“agg_cols”列的总和、均值和最大值,并添加一个新列来存储小计。
using DataFrames
# 创建数据框
df = DataFrame(col1 = [1, 2, 3, 1, 2, 3],
col2 = ['a', 'b', 'c', 'a', 'b', 'c'],
col3 = [0.5, 0.3, 0.2, 0.4, 0.6, 0.1])
# 按col1和col2列分组,并计算col3列的总和、均值和最大值
groupby_cols = [:col1, :col2]
agg_cols = :col3
new_cols = [:sum, :mean, :max]
df_subtotals = by(df, groupby_cols, df -> combine(df, new_cols .=> agg_cols))
# 打印结果
println(df_subtotals)
上述代码将生成以下输出:
6×5 DataFrame
│ Row │ col1 │ col2 │ sum │ mean │ max │
│ │ Int64 │ Char │ Float64│ Float64 │ Float64│
├─────┼───────┼────────┼────────┼───────────┼────────┤
│ 1 │ 1 │ 'a' │ 0.9 │ 0.45 │ 0.5 │
│ 2 │ 2 │ 'b' │ 0.9 │ 0.45 │ 0.6 │
│ 3 │ 3 │ 'c' │ 0.3 │ 0.15 │ 0.2 │
│ 4 │
上一篇:按组汇总多列数据
下一篇:按组汇总值,但保留原始数据