如何使用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)带有
Location
和Class
的数据透视表,应将其输出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没有此选项)...您可以通过将
by
与nrows
(行数)方法一起使用来进行分组: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/