Mam parsę danych z nieregularnie rozmieszczonymi datami. Czy istnieje sposób użycia 7 dni jako ruchomego okna do obliczenia median absolute deviation, mediany itp ..? Czuję, że mogłem w jakiś sposób użyć pandas.rolling_apply
, ale nie zajmuje to nieregularnych odstępów dla parametru okna. Znalazłem podobny post https://stackoverflow.com/a/30244019/3128336 i próbuję utworzyć moją funkcję niestandardową, ale nie mogę jeszcze dowiedzieć się ... Czy ktoś może ci pomóc?Jak używać dni jako okna dla pandy funkcja rolling_apply
import pandas as pd
from datetime import datetime
person = ['A','B','C','B','A','C','A','B','C','A',]
ts = [
datetime(2000, 1, 1),
datetime(2000, 1, 1),
datetime(2000, 1, 10),
datetime(2000, 1, 20),
datetime(2000, 1, 25),
datetime(2000, 1, 30),
datetime(2000, 2, 8),
datetime(2000, 2, 12),
datetime(2000, 2, 17),
datetime(2000, 2, 20),
]
score = [9,2,1,3,8,4,2,3,1,9]
df = pd.DataFrame({'ts': ts, 'person': person, 'score': score})
df wygląda to
person score ts
0 A 9 2000-01-01
1 B 2 2000-01-01
2 C 1 2000-01-10
3 B 3 2000-01-20
4 A 8 2000-01-25
5 C 4 2000-01-30
6 A 2 2000-02-08
7 B 3 2000-02-12
8 C 1 2000-02-17
9 A 9 2000-02-20
Chcesz ruchomego okna lub rozszerzający okno? – Goyo
Chcę przenieść okno. Tak więc coś takiego 'pd.rolling_apply (df, window = relativedelta (days = 7), func, min_periods = 1)' Byłem zmieszany między tymi dwoma. Pozwól mi poprawić mój post. Dzięki za wskazanie –
Czy możesz wyjaśnić, co nie działa z rozwiązaniem problemu, z którym się łączysz? Przypuszczam, że resampling danych do codziennych danych przed wykonaniem walcowania usuwa zduplikowane daty? – joris