Deedle,删除所有但一列

问题描述:

在大熊猫如果我想只保留目标列,我可以做这样的事情:Deedle,删除所有但一列

>>> import numpy as np 
>>> import pandas as pd 
>>> df = pd.DataFrame(np.random.randn(3,3), columns=list("abc")) 
>>> df[["a"]] 
      a 
0 0.057213 
1 0.162161 
2 1.351165 
>>> type(res) 
<class 'pandas.core.frame.DataFrame'> 

注意,结果仍然是数据帧。

然而,在Deedle如果我想删除所有列,但在“一”一栏,我在做杂技:

let dropCols = ["b"; "c"] 
dropCols |> List.iter (fun i -> someFrame.DropColumn i) 

someFrame?a,给出了一个系列。我如何将其转换回框架?有没有一种简单的方法只保留帧中的目标列,而没有将其转换为一个系列?

[编辑]

除了s952163的答案,它的价值张贴这个问题,以及:

fr.Columns.[["a"]] 

你可以这样做:

Frame.ofColumns [["a"] => df.["a"]]

尽管在你的榜样上面你似乎是在突变df的地方。您可以将其重写为dropCols |> List.iter df.DropColumn,即不带lambda。

API docs后,似乎也有这样的: Frame.sliceCols ["a"] df