Python 计算肯德尔';使用scipy和groupby的s tau

Python 计算肯德尔';使用scipy和groupby的s tau,python,pandas,dataframe,scipy,statistics,Python,Pandas,Dataframe,Scipy,Statistics,我有一个csv文件,其中包含每年和每个气象站的降水数据。看起来是这样的: station_id year Sum 210018 1916 65.024 210018 1917 35.941 210018 1918 28.448 210018 1919 68.58 210018 1920 31.115 215400 1916 44.958 2154

我有一个csv文件,其中包含每年和每个气象站的降水数据。看起来是这样的:

station_id    year       Sum
 210018      1916      65.024
 210018      1917      35.941
 210018      1918      28.448
 210018      1919      68.58
 210018      1920      31.115
 215400      1916      44.958
 215400      1917      31.496
 215400      1918      38.989
 215400      1919      74.93
 215400      1920      53.5432
我想返回一个Kendall的tau相关性和基于唯一站点id的p值。因此,对于上述内容,我需要站点id 210018和215400的总和和年份之间的相关性

然后,站点id 210018的相关性为-20,p值为.62;站点id 215400的相关性为.40,p值为.33

我正在尝试使用这个:

grouped=df.groupby(['station_id'])
grouped.aggregate([tau, p_value=sp.stats.kendalltau(df.year, df.Sum)])
返回的错误是p_值后等号上的语法错误


任何帮助都将不胜感激。

计算此值的一种方法是在
groupby
对象上使用
apply

>>> import scipy.stats as st
>>> df.groupby(['station_id']).apply(lambda x: st.kendalltau(x['year'], x['Sum']))
station_id
210018        (-0.2, 0.62420612399)
215400        (0.4, 0.327186890661)
dtype: object

这比我尝试的要直观得多。不过,我得到了一个属性错误模块“object没有属性”kendalltau“我明白了-回溯是否指出了导致属性错误的原因?(其他版本的Pandas可能需要一些修改)我让它工作了,只是忽略了我的一部分代码。非常感谢!没问题!很高兴它成功了。(我刚刚注意到我使用了不同的
scipy.stats
别名)