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
。