Ste*_*ter 2 python statistics scipy dataframe pandas
我有一个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
Run Code Online (Sandbox Code Playgroud)
我想根据唯一的站点ID返回Kendall的tau相关性和p值.所以对于上面我想要总和和年份之间的相关性为站号210018和215400.
然后,station_id 210018的相关性为-.20,p值为0.62,而station_id 215400的相关性为.40,p值为.33.
我想用这个:
grouped=df.groupby(['station_id'])
grouped.aggregate([tau, p_value=sp.stats.kendalltau(df.year, df.Sum)])
Run Code Online (Sandbox Code Playgroud)
返回的错误是p_value后等号上的语法错误.
任何帮助,将不胜感激.
计算这个的一种方法是apply在groupby对象上使用:
>>> 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2253 次 |
| 最近记录: |