在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   │ 
                
            
                    上一篇:按组汇总多列数据
                
下一篇:按组汇总值,但保留原始数据