热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python可以构建sem模型_python分组的熊猫DataFrames:如何将scipy.stats.sem应用于它们?...

我知道我可以通过执行以下操作来应用numpy方法:dataList是DataFrames的列表(相同的列行).testDF(concat(dataList,axis1

我知道我可以通过执行以下操作来应用numpy方法:

dataList是DataFrames的列表(相同的列/行).

testDF = (concat(dataList, axis=1, keys=range(len(dataList)))

.swaplevel(0, 1, axis=1)

.sortlevel(axis=1)

.groupby(level=0, axis=1))

testDF.aggregate(numpy.mean)

testDF.aggregate(numpy.var)

等等.但是,如果我想计算均值(sem)的标准误差怎么办?

我试过了:

testDF.aggregate(scipy.stats.sem)

但它给出了一个令人困惑的错误.有人知道怎么做吗? scipy.stats方法有何不同之处?

这是一些为我重现错误的代码:

from scipy import stats as st

import pandas

import numpy as np

df_list = []

for ii in range(30):

df_list.append(pandas.DataFrame(np.random.rand(600, 10),

columns = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']))

testDF = (pandas.concat(df_list, axis=1, keys=range(len(df_list)))

.swaplevel(0, 1, axis=1)

.sortlevel(axis=1)

.groupby(level=0, axis=1))

testDF.aggregate(st.sem)

这是错误消息:

---------------------------------------------------------------------------

AssertionError Traceback (most recent call last)

in ()

12 .groupby(level=0, axis=1))

13

---> 14 testDF.aggregate(st.sem)

/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/pandas/core/groupby.py in aggregate(self, arg, *args, **kwargs)

1177 return self._python_agg_general(arg, *args, **kwargs)

1178 else:

-> 1179 result = self._aggregate_generic(arg, *args, **kwargs)

1180

1181 if not self.as_index:

/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/pandas/core/groupby.py in _aggregate_generic(self, func, *args, **kwargs)

1248 else:

1249 result = DataFrame(result, index=obj.index,

-> 1250 columns=result_index)

1251 else:

1252 result = DataFrame(result)

/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/pandas/core/frame.py in __init__(self, data, index, columns, dtype, copy)

300 mgr = self._init_mgr(data, index, columns, dtype=dtype, copy=copy)

301 elif isinstance(data, dict):

--> 302 mgr = self._init_dict(data, index, columns, dtype=dtype)

303 elif isinstance(data, ma.MaskedArray):

304 mask = ma.getmaskarray(data)

/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/pandas/core/frame.py in _init_dict(self, data, index, columns, dtype)

389

390 # consolidate for now

--> 391 mgr = BlockManager(blocks, axes)

392 return mgr.consolidate()

393

/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/pandas/core/internals.py in __init__(self, blocks, axes, do_integrity_check)

329

330 if do_integrity_check:

--> 331 self._verify_integrity()

332

333 def __nonzero__(self):

/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/pandas/core/internals.py in _verify_integrity(self)

404 mgr_shape = self.shape

405 for block in self.blocks:

--> 406 assert(block.values.shape[1:] == mgr_shape[1:])

407 tot_items = sum(len(x.items) for x in self.blocks)

408 assert(len(self.items) == tot_items)

AssertionError:

解决方法:

更新的答案:

看来我可以使用各种库的工作版本来复制它.稍后,我将检查我的家庭版本,以查看这些功能的文档是否有所不同.

在此期间,以下内容使用了您的确切编辑版本对我有用:

In [35]: testDF.aggregate(lambda x: st.sem(x, axis=None))

Out[35]:

Int64Index: 600 entries, 0 to 599

Data columns:

A 600 non-null values

B 600 non-null values

C 600 non-null values

D 600 non-null values

E 600 non-null values

F 600 non-null values

G 600 non-null values

H 600 non-null values

I 600 non-null values

J 600 non-null values

dtypes: float64(10)

这使我怀疑它与sem()轴约定有关.它的默认值为0,最终映射到的Pandas对象可能具有第0个怪异的轴或其他东西.当我使用选项axis = None时,它使应用了该对象的对象变得杂乱无章,这使它起作用.

就像进行健全性检查一样,我也这样做,它也起作用:

In [37]: testDF.aggregate(lambda x: st.sem(x, axis=1))

Out[37]:

Int64Index: 600 entries, 0 to 599

Data columns:

A 600 non-null values

B 600 non-null values

C 600 non-null values

D 600 non-null values

E 600 non-null values

F 600 non-null values

G 600 non-null values

H 600 non-null values

I 600 non-null values

J 600 non-null values

dtypes: float64(10)

但是您应该检查以确保这实际上是您想要的SEM值,可能是在一些较小的示例数据上.

较旧的答案:

这可能与scipy.stats的模块问题有关吗?当我使用该模块时,我必须从scipy import stats中将其称为st或类似名称. import scipy.stats不起作用,并调用import scipy; scipy.stats.sem给出错误,指出不存在名为“ stats”的模块.

熊猫似乎根本没有找到这种功能.我认为错误消息应该得到改善,因为这并不明显.

>>> from scipy import stats as st

>>> import pandas

>>> import numpy as np

>>> df_list = []

>>> for ii in range(10):

... df_list.append(pandas.DataFrame(np.random.rand(10,3),

... columns = ['A', 'B', 'C']))

...

>>> df_list

# Suppressed the output cause it was big.

>>> testDF = (pandas.concat(df_list, axis=1, keys=range(len(df_list)))

... .swaplevel(0, 1, axis=1)

... .sortlevel(axis=1)

... .groupby(level=0, axis=1))

>>> testDF

>>> testDF.aggregate(np.mean)

key_0 A B C

0 0.660324 0.408377 0.374681

1 0.459768 0.345093 0.432542

2 0.498985 0.443794 0.524327

3 0.605572 0.563768 0.558702

4 0.561849 0.488395 0.592399

5 0.466505 0.433560 0.408804

6 0.561591 0.630218 0.543970

7 0.423443 0.413819 0.486188

8 0.514279 0.479214 0.534309

9 0.479820 0.506666 0.449543

>>> testDF.aggregate(np.var)

key_0 A B C

0 0.093908 0.095746 0.055405

1 0.075834 0.077010 0.053406

2 0.094680 0.092272 0.095552

3 0.105740 0.126101 0.099316

4 0.087073 0.087461 0.111522

5 0.105696 0.110915 0.096959

6 0.082860 0.026521 0.075242

7 0.100512 0.051899 0.060778

8 0.105198 0.100027 0.097651

9 0.082184 0.060460 0.121344

>>> testDF.aggregate(st.sem)

A B C

0 0.089278 0.087590 0.095891

1 0.088552 0.081365 0.098071

2 0.087968 0.116361 0.076837

3 0.110369 0.087563 0.096460

4 0.101328 0.111676 0.046567

5 0.085044 0.099631 0.091284

6 0.113337 0.076880 0.097620

7 0.087243 0.087664 0.118925

8 0.080569 0.068447 0.106481

9 0.110658 0.071082 0.084928

似乎为我工作.

标签:pandas,scipy,statistics,python,numpy

来源: https://codeday.me/bug/20191201/2078362.html



推荐阅读
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 标题: ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
author-avatar
傻a2602909381
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有