Я хотел бы вычислить скользящую ранговую корреляцию между двумя столбцами в кадре данных. Однако текущий rolling_corr
в пандах не поддерживает ранговую корреляцию. Я попытался выполнить скользящую ранговую корреляцию с rolling_apply
, но не имел никакого успеха. Кажется, что rolling_apply
принимает только один массив в качестве входного аргумента, но для корреляции нужны два массива. Есть ли умный способ реализации скользящей ранговой корреляции с rolling_apply
или некоторыми другими методами? Ранговая корреляция будет хорошим дополнением к rolling_corr
, если это возможно.Как вычислить скользящее ранжирование с использованием Pandas
3
A
ответ
4
Не думаю, что rolling_apply
можно использовать для коррекции качения, поскольку он, по-видимому, разбивает DataFrames на 1-мерные массивы. Там могут быть лучшие способы сделать это, но одно решение сделать генератор, чтобы получить кусочек для каждого окна сами:
def window(length, size=2, start=0):
while start + size <= length:
yield slice(start, start + size)
start += 1
, а затем петлю через него ..
In [144]: from pandas import DataFrame
...: import numpy as np
...:
...: df = DataFrame(np.arange(10).reshape(2,5).T, columns=['a','b'])
...:
...: df.iloc[0,1] = -1 #still perfect with ranked correlation, but not with pearson's r
...:
...: for w in window(len(df), size=3):
...: df_win = df.iloc[w,:]
...: spearman = df_win['a'].rank().corr(df_win['b'].rank())
...: pearson = df_win['a'].corr(df_win['b'])
...: print w.start, spearman, pearson
...:
0 1.0 0.917662935482
1 1.0 1.0
2 1.0 1.0
Смежные вопросы
- 1. Как вычислить скользящее среднее с использованием MySQL?
- 2. Вычислить ранжирование процентиля (парсе)
- 3. SQLite - вычислить скользящее среднее
- 4. Как вычислить ранжирование с хранимыми процедурами MySQL?
- 5. Как вычислить скользящее среднее с помощью jq?
- 6. Как рассчитать скользящее среднее на объекте GroupBy с помощью Pandas?
- 7. Вычислить ежедневную климатологию с использованием pandas python
- 8. Вычислить инкрементное значение с использованием python pandas
- 9. Как вычислить скользящее среднее из текстового файла?
- 10. Вычислить разницу между значениями с использованием фильтра с использованием Pandas
- 11. Вычислить ранжирование пользователей на основе двух столбцов
- 12. Скользящее меню с использованием фрагментов
- 13. Скользящее изображение с использованием JavaScript
- 14. Процентное ранжирование в кадре данных. Pandas
- 15. Скользящее окно с использованием R
- 16. Скользящее изображение с использованием yii2
- 17. Как рассчитать взвешенное скользящее среднее с помощью панд
- 18. вычислить скользящее среднее каждые n часов
- 19. Как вычислить матрицу ковариации с Pandas
- 20. скользящее среднее со смещением по времени pandas
- 21. Вычислить «концентрацию» pandas категориальных
- 22. TSQL Ранжирование с использованием timestamp и datetime
- 23. TSQL: ранжирование записей с использованием разных столбцов
- 24. Как вычислить скользящее среднее в MySQL в коррелированном подзапросе?
- 25. Как вычислить скользящее среднее за последние n часов
- 26. как вычислить скользящее среднее на основе столбца в spotfire
- 27. Как вычислить скользящее окно над массивом в powershell?
- 28. Как я могу (эффективно) вычислить скользящее среднее вектора?
- 29. n-мерное скользящее окно с Pandas или Numpy
- 30. Изображение скользящее управление с использованием wpf