选择Deedle特定的行 [英] Select Specific Rows in Deedle
问题描述
我有一个deedle数据帧,称为DF,用指定的列 TimeSpent
之一。
I have a deedle data frame, called df, with one of the columns named TimeSpent
.
我想保持行,其中有 TimeSpent
不是特定的时间内(如30分钟),更大的价值。
我只能设法保持行与特定时间内(30分钟)
使用 FilterRowsBy()
I would like to keep the rows, which have values for TimeSpent
greater than a specific TimeSpan (e.g. 30 minutes).
I could only manage to keep the rows with a specific TimeSpan (30 min)
by using FilterRowsBy()
df = df.FilterRowsBy<int, string, TimeSpan>("TimeSpent", new TimeSpan(0, 30, 0));
你如何筛选deedle数据帧在一定范围内?
How do you filter a deedle data frame for a certain range?
更新:所以,我决定尝试排序时间跨度
第一deedle框架,然后切片
UPDATE: So, I decided to try to sort the deedle frame by TimeSpan
first, and then slice it.
Frame<TimeSpan, string> dfTest = df.IndexRows<TimeSpan>("TimeSpent").SortRowsByKey();
var dfTest2 = dfTest.Rows.After(twentyMin);
而作为一个结果我得到一个新的数据帧是类型<时间跨度,ObjectSeries< System.String>>
,但我需要这个数据帧转换为<时间跨度,字符串>
,而我呢不知道怎么办。
And as a result I get a new data frame that is type <TimeSpan, ObjectSeries<System.String>>
, but I need to convert this data frame to <TimeSpan, String>
, and I do not know how.
推荐答案
我结束了使用LINQ到数据帧进行排序,由创建一个新索引后,时间跨度
I ended up using linq to sort the data frame, after creating a new index by TimeSpan
.
Frame<TimeSpan, string> dfResult =
df.IndexRows<TimeSpan>("TimeSpent")
.Where(kvp => kvp.Key > new Timespan(0, 20, 0));
这篇关于选择Deedle特定的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!