【问题标题】:Select Specific Rows in Deedle在 Deedle 中选择特定行
【发布时间】:2015-06-25 20:36:55
【问题描述】:

我有一个名为 df 的 deedle 数据框,其中一列名为 TimeSpent

我想保留 TimeSpent 的值大于特定时间跨度(例如 30 分钟)的行。 我只能设法通过使用FilterRowsBy() 来保留具有特定TimeSpan (30 min) 的行

df = df.FilterRowsBy<int, string, TimeSpan>("TimeSpent", new TimeSpan(0, 30, 0));

如何过滤某个范围的deedle数据框?

更新:所以,我决定先尝试按TimeSpan 对deedle 帧进行排序,然后再对其进行切片。

Frame<TimeSpan, string> dfTest = df.IndexRows<TimeSpan>("TimeSpent").SortRowsByKey();
var dfTest2 = dfTest.Rows.After(twentyMin);

结果我得到了一个&lt;TimeSpan, ObjectSeries&lt;System.String&gt;&gt; 类型的新数据框,但我需要将此数据框转换为&lt;TimeSpan, String&gt;,我不知道如何。

【问题讨论】:

    标签: c# dataframe deedle


    【解决方案1】:

    在通过TimeSpan 创建新索引后,我最终使用 linq 对数据框进行排序。

    Frame<TimeSpan, string> dfResult =
        df.IndexRows<TimeSpan>("TimeSpent")
        .Where(kvp => kvp.Key > new Timespan(0, 20, 0));
    

    【讨论】:

    • 按行索引时,'"TimeSpent"' 必须是唯一的,否则会抛出错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多