Dataframe 选择分组数据帧中每个组的第n个元素
假设我创建以下数据帧Dataframe 选择分组数据帧中每个组的第n个元素,dataframe,julia,Dataframe,Julia,假设我创建以下数据帧 using DataFrames df = DataFrame(A = rand(500), B = repeat(1:10, inner=50), C = 1:500) 我可以做一个groupby: grouped_df = groupby(df,"B") 我将以10个小组结束。比如说,我如何选择每个组的第三个元素,并将它们组合成一个新的数据帧?也就是说,我想要一个10行的新数据帧,每行是每个组的第三个元素 我查看了合并,但找不到解决方案。我能得到
using DataFrames
df = DataFrame(A = rand(500), B = repeat(1:10, inner=50), C = 1:500)
我可以做一个groupby
:
grouped_df = groupby(df,"B")
我将以10个小组结束。比如说,我如何选择每个组的第三个元素,并将它们组合成一个新的数据帧?也就是说,我想要一个10行的新数据帧,每行是每个组的第三个元素
我查看了
合并
,但找不到解决方案。我能得到提示吗?要从每个组中获取第三行,请先使用索引将groupby
组合起来:
julia> combine(groupby(df, :B), x->x[3, :])
10×3 DataFrame
Row │ B A C
│ Int64 Float64 Int64
─────┼─────────────────────────
1 │ 1 0.196572 3
2 │ 2 0.539942 53
3 │ 3 0.243455 103
4 │ 4 0.837491 153
5 │ 5 0.672861 203
6 │ 6 0.0220219 253
7 │ 7 0.303417 303
8 │ 8 0.409596 353
9 │ 9 0.165928 403
10 │ 10 0.752038 453
(我最初误读了这个问题,建议使用逻辑索引,比如
df[df.B.==3,:]
)你基本上得到了第三组。然而,我想得到每个组的第三个元素。啊,我误解了,但也许我的编辑也不对?你想要50排?你说得对。非常感谢。