Как рассчитать корреляцию для каждого месяца между 2 кадрами в pandas? - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть 2-летние временные ряды со следующей структурой, индекс для даты-времени для них обоих. Я хочу рассчитать месячную корреляцию между столбцами precip и rainfall_rate, а затем в конечном итоге построить корреляцию по месяцам.

Я пробовал pd.corrwith(). Но я не мог сделать это ежемесячно. Подойдут любые предложения (циклы, предопределенные функции и т. Д. c.)

# DATAFRAME #1

        latitude    longitude        precip
time            
2010-01-01  1.324997    103.674988  0.00000
2010-01-02  1.324997    103.674988  6.95574
2010-01-03  1.324997    103.674988  6.95574
2010-01-04  1.324997    103.674988  0.00000
2010-01-05  1.324997    103.674988  6.95574
.
.


# DATAFRAME #2
            rainfall_rate
timestamp   
2010-01-01  10.80
2010-01-02  0.12
2010-01-03  0.12
2010-01-04  7.92
2010-01-05  0.00
.
.

1 Ответ

1 голос
/ 20 апреля 2020

Вы можете использовать resample.

Обратите внимание, что вызов corr приводит к появлению лишних строк, которые затем удаляются строками groupby и first.

(
 df1.join(df2, how='left')
 .resample('1M')[['precip', 'rainfall_rate']]
 .corr()
 .groupby(level=0)
 .first()
 .rename(columns={'rainfall_rate': 'corr'})['corr']
)

...