【问题标题】:How to calculate correlation for every month between 2 dataframes in pandas?如何计算熊猫中两个数据框之间每个月的相关性?
【发布时间】:2020-08-02 03:13:23
【问题描述】:

我有以下结构的 2 年长的时间序列数据帧,索引是它们两者的日期时间。我想计算preciprainfall_rate 列之间的每月相关性,然后最终按月绘制相关性。

我试过pd.corrwith()。但我不能按月做。任何建议都可以(循环、预定义函数等)

# 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
.
.

【问题讨论】:

    标签: python pandas dataframe time-series correlation


    【解决方案1】:

    您可以使用resample

    请注意,调用corr 会产生一些多余的行,然后会被groupbyfirst 行消除。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-09
      • 1970-01-01
      • 1970-01-01
      • 2016-05-05
      • 2018-11-04
      • 2018-04-18
      • 1970-01-01
      相关资源
      最近更新 更多