首页 > 解决方案 > Python pymannkendall 和 Pandas Groupby 解包结果

问题描述

我有一个系列是使用 lambda 应用 pymannkendall 函数的结果。然而,问题是我需要以某种方式解开该系列的元素,而我无法以目前的形式做到这一点。数据框“ncd”的示例如下所示:

  plant_name  year  season  day  count  mean   std   min   10%   50%    90%    max
0  ARIZONA I  2005       1    1   72.0  9.37  1.36  7.43  7.72  9.26  10.86  13.18
1  ARIZONA I  2005       1    2   72.0  9.19  1.00  7.37  7.93  9.22  10.24  12.24
2  ARIZONA I  2005       1    3   72.0  9.28  1.60  6.31  7.10  9.41  11.32  12.63
3  ARIZONA I  2005       1    4   72.0  8.76  1.99  5.59  5.74  9.36  10.80  11.06
4  ARIZONA I  2005       1    5   72.0  8.40  2.42  4.18  5.09  9.33  10.91  13.89 

我创建系列 (17,) 的代码如下所示:

ncd = ncData.groupby(['plant_name','year','season','day'])['wind_speed_ms'].describe(percentiles = [0.9, 0.1]).round(2).reset_index()
nc10= ncd.groupby(['plant_name']).apply(lambda x: mk.original_test(x['10%']))

而且,“nc10”系列看起来像这样:

In [68]: nc10
Out[68]: 
plant_name
ARIZONA I      (no trend, False, 0.416671903456554, 0.8122086...
CAETITE I      (increasing, True, 0.00022557963311364837, 3.6...
CAETITE II     (increasing, True, 0.001237301922455858, 3.230...
CAETITE III    (increasing, True, 0.00029610116053091495, 3.6...
CALANGO I      (no trend, False, 0.06614633155767802, -1.8374...
CALANGO II     (decreasing, True, 0.004494175262409472, -2.84...
CALANGO III    (no trend, False, 0.08652731348848075, -1.7140...
CALANGO IV     (decreasing, True, 0.0203025663568539, -2.3207...
CALANGO V      (no trend, False, 0.05860321719835615, -1.8911...
CALANGO VI     (decreasing, True, 0.006518506037077154, -2.72...
CANOAS         (decreasing, True, 0.04470174299349505, -2.007...
LAGOA I        (no trend, False, 0.1335175311613055, -1.50037...
LAGOA II       (no trend, False, 0.1395114855149504, -1.47761...
MEL II         (no trend, False, 0.09929968197907635, -1.6482...
RIO DO FOGO    (no trend, False, 0.5553621888263085, 0.589744...
SANTANA I      (decreasing, True, 0.006538153896656684, -2.71...
SANTANA II     (decreasing, True, 0.002009326564589742, -3.08...
dtype: object

我需要以某种方式对 mk.original_test(x['%10'] 的结果进行解包。解包的元素采用这种形式,我无法使用 (17,1) 系列“nc10”执行此操作我知道。也许,我可以使用 mk.original_test(data) 函数和 groupby ('plant_name') 函数而不是 lambda 函数...通过我需要的植物名称来获得解包结果。

trend, h, p, z, Tau, s, var_s, slope, intercept = mk.original_test(data)

标签: pandaslambdapandas-groupby

解决方案


推荐阅读