Mam ramkę danych deedle, zwaną df, z jedną z nazwanych kolumn TimeSpent
.
Chciałbym zachować wiersze, dla których istnieją wartości TimeSpent
większa niż określona TimeSpan (na przykład 30 minut). Mogłem tylko utrzymać wiersze z konkretnymi TimeSpan (30 min)
używając FilterRowsBy()
df = df.FilterRowsBy<int, string, TimeSpan>("TimeSpent", new TimeSpan(0, 30, 0));
Jak filtrować ramkę danych z zatwierdzeniem dla określonego zakresu?
AKTUALIZACJA: Postanowiłem więc spróbować posortować ramkę deedle TimeSpan
najpierw, a następnie pokroić.
Frame<TimeSpan, string> dfTest = df.IndexRows<TimeSpan>("TimeSpent").SortRowsByKey();
var dfTest2 = dfTest.Rows.After(twentyMin);
W rezultacie otrzymuję nową ramkę danych, która jest typu <TimeSpan, ObjectSeries<System.String>>
, ale muszę przekonwertować tę ramkę danych na <TimeSpan, String>
i nie wiem jak.
Odpowiedzi:
0 dla odpowiedzi № 1Skończyło się na użyciu linq do sortowania ramek danych po utworzeniu nowego indeksu przez TimeSpan
.
Frame<TimeSpan, string> dfResult =
df.IndexRows<TimeSpan>("TimeSpent")
.Where(kvp => kvp.Key > new Timespan(0, 20, 0));