Resample Pandas Dataframe на основе переменной DatetimeIndex - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть фрейм данных с индексом Date:

           Symbol  Shares  Price  Commission
Date                                        
2017-12-06    BNP       0      0        10.0
2018-10-09    BNP       0      0        10.0

и отдельной переменной DatetimeIndex:

DatetimeIndex(['2014-02-14', '2014-02-15', '2014-02-16', '2014-02-17',
               ...
               '2020-04-11', '2020-04-12'],
              dtype='datetime64[ns]', length=2250, freq='D')

Я пытаюсь пересчитать фрейм данных на основе этой переменной. Есть ли способ сделать это? Я знаю о pandas.DataFrame.resample, но кажется, что его можно использовать только для «регулярного» пересэмплирования (т. Е. Ежедневно, еженедельно и т. Д. c.)

Я новичок в python, переходя с MATLAB.

Спасибо!

1 Ответ

0 голосов
/ 12 апреля 2020

Зависит от того, как вы хотите это сделать, проверьте: http://pandas-docs.github.io/pandas-docs-travis/user_guide/timeseries.html

Однако Series и DataFrame могут напрямую поддерживать компонент времени в качестве самих данных.

Приведу только один пример:

rng = pd.date_range('1/1/2012', periods=100, freq='S')
ts = pd.Series(np.random.randint(0, 500, len(rng)), index=rng)
ts.resample('W-MON')

idx = pd.date_range('2018-01-01', periods=5, freq='H')
ts = pd.Series(range(len(idx)), index=idx)
Output: 
2018-01-01 00:00:00    0
2018-01-01 01:00:00    1
2018-01-01 02:00:00    2
2018-01-01 03:00:00    3
2018-01-01 04:00:00    4

pd.Series(range(3), index=pd.date_range('2000', freq='D', periods=3))
Output: 
2000-01-01    0
2000-01-02    1
2000-01-03    2

pd.Series(pd.period_range('1/1/2011', freq='M', periods=3))
Output: 
0   2000-01-01
1   2000-01-02
2   2000-01-03
...