【问题标题】:Deedle, dropping all but one columnDeedle,除一列外全部丢弃
【发布时间】:2016-09-07 03:26:09
【问题描述】:

在 pandas 中,如果我只想保留目标列,我可以这样做:

>>> 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 中,如果我想删除除“a”列之外的所有列,我必须做杂技:

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

做someFrame?a,给出一个系列。如何将其转换回框架?有没有一种直接的方法可以只将目标列保留在 Frame 中而不将其转换为系列?

[编辑]

除了 s952163 的回答,它也值得发布:

fr.Columns.[["a"]]

【问题讨论】:

    标签: f# deedle


    【解决方案1】:

    你可以这样做:

    Frame.ofColumns [["a"] =&gt; df.["a"]]

    尽管在上面的示例中,您似乎正在对 df 进行适当的更改。您可以将其重写为 dropCols |&gt; List.iter df.DropColumn,即没有 lambda。

    看了API docs之后好像还有这个: Frame.sliceCols ["a"] df.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多