选择列的子集(即通过列键集合过滤数据帧)

时间:2014-05-23 13:06:39

标签: f# deedle

有一些示例说明如何从这样的数据框中获取单个列。

people?Age
people.["Age"]
people.GetColumn("Countries")

但是如何获得多个列的子集?例如,我希望能够做到这样的事情:

people.[["age";"Countries"]]  

people.GetColumn(["age";"Countries"])

并让它返回一个只有这两列/系列的数据框。有一种简单的方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:2)

使用Frame.sliceCols是一种方法,但您也可以使用切片语法。诀窍是在people.Columns而不是直接在框架上使用切片:

people.Columns.[["age";"Countries"]]  

这样做的动机是你可能也希望对行进行切片,在这种情况下你可以people.Rows.[ [1;3;5 ]。如果您的框架已订购行索引,则可以选择范围并执行people.Rows.[1 .. 10]

答案 1 :(得分:1)

我在frame API section找到了我要找的东西。可以选择多个列,通过以下方式创建新帧:

let newFrame = people |> Frame.sliceCols(["age";"Countries"])

我认为当前的文档很棒,但是通过在this page操作数据框部分添加这样的示例可能会有所帮助。