使用几何标准差(gstd)进行聚合

2024-09-30 06:17:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用几何平均值和几何标准差(基于日期分组)聚合数据帧列表。数据帧具有datetimeindex,但有几天在所有数据帧中不包含任何值

数据:

                                 col1    col2        col3       col4    
datetime                        
2020-06-29 17:30:00+00:00   3.237216    2.919800    1.244800    0.247284    
2020-06-29 17:45:00+00:00   3.896863    3.522242    1.513753    0.324903    
2020-06-29 18:00:00+00:00   3.100665    2.796570    1.192138    0.273637
...     

我的代码:

from scipy.stats.mstats import gmean
from scipy.stats import gstd

cols = ["col1", "col2","col3","col4"]
joined = pd.concat(df.reset_index() for df in listdata)
#joined = joined.replace({np.nan:1, 0:1})
joined[cols] = joined[cols].mask(joined[cols] < 0, 1)

df = joined.set_index('datetime').groupby(pd.Grouper(freq='D'))

means = df.agg(gmean)
std = df.apply(gstd)
#std = df.agg(gstd)

gmean工作正常,但gstd返回一个错误:

ValueError: Degrees of freedom <= 0 for slice  

有没有办法解决这个错误?是不是因为数据帧中错过了几天


Tags: 数据fromimportdfdatetimestatsscipycol2

热门问题