dataframe - Julia数据框分组依据和数据透视表功能

标签 dataframe julia

如何使用Julia Dataframes对表进行分组和透视?

可以说我有数据框

using DataFrames

df =DataFrame(Location = [ "NY", "SF", "NY", "NY", "SF", "SF", "TX", "TX", "TX", "DC"],
                 Class = ["H","L","H","L","L","H", "H","L","L","M"],
                 Address = ["12 Silver","10 Fak","12 Silver","1 North","10 Fak","2 Fake", "1 Red","1 Dog","2 Fake","1 White"],
                 Score = ["4","5","3","2","1","5","4","3","2","1"])

我想执行以下操作:

1)带有LocationClass的数据透视表,应将其输出
Class     H  L  M
Location         
DC        0  0  1
NY        2  1  0
SF        1  2  0
TX        1  2  0

2)按“位置”分组并计算该组中记录的数量,该记录应输出
   Pop  
DC  1   
NY  3  
SF  3  
TX  3 

最佳答案

您可以使用unstack来获得大部分信息(DataFrames没有索引,因此Class必须保留一列,而不是在 Pandas 中将其作为索引),这似乎是DataFrames.jl对pivot_table的回答:

julia> unstack(df, :Location, :Class, :Score)
WARNING: Duplicate entries in unstack.
4x4 DataFrames.DataFrame
| Row | Class | H   | L   | M   |
|-----|-------|-----|-----|-----|
| 1   | "DC"  | NA  | NA  | "1" |
| 2   | "NY"  | "3" | "2" | NA  |
| 3   | "SF"  | "5" | "1" | NA  |
| 4   | "TX"  | "4" | "2" | NA  |

我不确定您在这里如何fillna(unstack没有此选项)...

您可以通过将bynrows(行数)方法一起使用来进行分组:
julia> by(df, :Location, nrow)
4x2 DataFrames.DataFrame
| Row | Location | x1 |
|-----|----------|----|
| 1   | "DC"     | 1  |
| 2   | "NY"     | 3  |
| 3   | "SF"     | 3  |
| 4   | "TX"     | 3  |

关于dataframe - Julia数据框分组依据和数据透视表功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27874472/

相关文章:

ubuntu - 如何处理 Julia 的预编译 Linux 二进制文件?

r - groupby 数据框列并将行合并到列中

dataframe - 如何在 Julia 数据帧上进行就地广播操作?

python - 在 Pandas DataFrame 中用逗号加入 groupby 列

r - 将“by”对象转换为R中的数据帧

julia - 如何在 julia 数据框中获取列的 dtypes

python - 如何在 Julia 中为 n 维数组切换轴(维度)

pandas - 缺少值的 Pandas 数据框乘法

julia - 在 JULIA 的分布式 for 循环中写入共享数组

r - 加快 Julia 写得不好的 R 示例的速度