Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用groupby和groupby.size()的输出

使用groupby和groupby.size()的输出
EN

Stack Overflow用户
提问于 2016-09-18 17:28:08
回答 1查看 1.6K关注 0票数 1

我有一个pandas数据框,其中包含参与者在用户研究期间操作的每个对象的一行。每个参与者都参与了3次研究,每种情况下(abc)各一次,每种情况下约有300-700个对象。

当我报告使用的对象的数量时,我希望确保这不会因条件的不同而有显着差异(我不希望它会这样做,但需要从统计上确认这一点)。

我想我想运行方差分析来比较这3个条件,但我不知道如何获得方差分析所需的数据。

我目前有一些pandas代码来对数据进行分组,并计算每个条件下每个参与者的行数(这样我就可以使用mean()和类似的方法来汇总数据)。下面是一个包含数据子集的示例:

代码语言:javascript
运行
AI代码解释
复制
>>> tmp = df.groupby([FIELD_PARTICIPANT, FIELD_CONDITION]).size()
>>> tmp
participant_id  condition
1               a            576
2               b            367
3               a            703
4               c            309
dtype: int64

为了计算方差分析,我通常只需要通过条件列来过滤它们,例如

代码语言:javascript
运行
AI代码解释
复制
cond1 = tmp[tmp[FIELD_CONDITION] == CONDITION_A] 
cond2 = tmp[tmp[FIELD_CONDITION] == CONDITION_B] 
cond3 = tmp[tmp[FIELD_CONDITION] == CONDITION_C]
f_val, p_val = scipy.stats.f_oneway(cond1, cond2, cond3)

然而,由于tmp是一个Series而不是我习惯的DataFrame,我不知道如何以正常的方式实现这一点。

代码语言:javascript
运行
AI代码解释
复制
>>> tmp[FIELD_CONDITION]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/pandas/core/series.py", line 583, in __getitem__
    result = self.index.get_value(self, key)
  File "/Library/Python/2.7/site-packages/pandas/indexes/multi.py", line 626, in get_value
    raise e1
KeyError: 'condition'
>>> type(tmp)
<class 'pandas.core.series.Series'>
>>> tmp.index
MultiIndex(levels=[[u'1', u'2', u'3', u'4'], [u'd', u's']],
           labels=[[0, 1, 2, 3], [0, 0, 0, 1]],
           names=[u'participant_id', u'condition'])

我确信这是一个需要解决的简单问题,但如果没有一些帮助,我似乎无法达到目标:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-18 17:29:49

我认为您需要reset_index,然后输出为DataFrame

代码语言:javascript
运行
AI代码解释
复制
tmp = df.groupby([FIELD_PARTICIPANT, FIELD_CONDITION]).size().reset_index(name='count')

示例:

代码语言:javascript
运行
AI代码解释
复制
import pandas as pd

df = pd.DataFrame({'participant_id': {0: 1, 1: 1, 2: 1, 3: 1, 4: 2, 5: 2, 6: 2, 7: 3, 8: 4, 9: 4},
                   'condition': {0: 'a', 1: 'a', 2: 'a', 3: 'a', 4: 'b', 5: 'b', 6: 'b', 7: 'a', 8: 'c', 9: 'c'}})
print (df)
  condition  participant_id
0         a               1
1         a               1
2         a               1
3         a               1
4         b               2
5         b               2
6         b               2
7         a               3
8         c               4
9         c               4

tmp = df.groupby(['participant_id', 'condition']).size().reset_index(name='count')
print (tmp)
   participant_id condition  count
0               1         a      4
1               2         b      3
2               3         a      1
3               4         c      2

如果需要使用Series,您可以使用条件where select values of Multiindex by get_level_values

代码语言:javascript
运行
AI代码解释
复制
tmp = df.groupby(['participant_id', 'condition']).size()
print (tmp)
participant_id  condition
1               a            4
2               b            3
3               a            1
4               c            2
dtype: int64

print (tmp.index.get_level_values('condition'))
Index(['a', 'b', 'a', 'c'], dtype='object', name='condition')

print (tmp.index.get_level_values('condition') == 'a')
[ True False  True False]

print (tmp[tmp.index.get_level_values('condition') == 'a'])
participant_id  condition
1               a            4
3               a            1
dtype: int64
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39560598

复制
相关文章
SQL Server数据库获取TEXT字段的内容长度的方法
SQL Server数据库如何获取TEXT字段的内容长度呢?本文我们就来介绍一下SQL Server数据库如何获取TEXT字段的内容长度的方法,是通过DATALENGTH函数来实现的,接下来我们就通过DATALENGTH函数的语法及使用实例来了解一下这部分内容。
跟着阿笨一起玩NET
2018/09/18
2.8K0
【说站】sql如何修改、移动字段位置顺序
这里我们可以看到该数据表的字段结构,我们可以通过下方的“移动字段”这个功能来移动字段的显示顺序,在弹出窗口通过拖拽来移动字段的位置即可改变字段在数据表里面的显示顺序,移动好位置以后,点击“执行”即可。
很酷的站长
2022/11/24
1.8K0
【说站】sql如何修改、移动字段位置顺序
SqlServer 获取数据库全部字段
Select o.Name As ObjectsName , c.name As ColumnsName , t.name As ColumnsType , c.length As ColumnsLength From SysObjects As o , SysColumns As c , SysTypes As t Where o.type in ('u','v') And o.id = c.id And c.xtype = t.xtype Order By o.name , c.name , t.nam
用户2657851
2020/03/04
1.4K0
Joomla!3.7.0 SQL注入攻击漏洞分析
Joomla是一套世界第二流行的内容管理系统。它使用的是PHP语言加上MySQL数据库所开发的软件系统,可以在Linux、 Windows、MacOSX等各种不同的平台上执行,目前由开放源码组织Open Source Matters进行开发与支持。 作者 | Shun Joomla实际有两个开源的东西: 1、Joomla内容管理系统即JoomlaCMS(Content Management System, CMS)。它是网站的一个基础管理平台,几乎适合从个人网站到百货销售类型的各类网站。 2、Joomla
FB客服
2018/02/24
2K0
Joomla!3.7.0 SQL注入攻击漏洞分析
mac sh文件_android获取apk位置
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169533.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
8710
mac sh文件_android获取apk位置
将 SQL Server 数据库恢复到不同的文件名和位置
一、概述 RESTORE ... WITH MOVE 选项允许您恢复数据库,但也可以指定数据库文件(mdf 和 ldf)的新位置。如果您要从该数据库的备份还原现有数据库,则不需要这样做,但如果您要从具有不同文件位置的不同实例还原数据库,则可能需要使用此选项。 RESTORE ... WITH MOVE 选项将让您确定数据库文件的名称以及创建这些文件的位置。在使用此选项之前,您需要知道这些文件的逻辑名称以及 SQL Server 的位置。 如果已经存在另一个使用您尝试还原的相同文件名的数据库并且该数据库处于联
IT大咖说
2022/08/26
1.1K0
将 SQL Server 数据库恢复到不同的文件名和位置
MongoDB(14)- 查询 null 字段或缺少某个字段的文档
如果我想单独的把字段值有 null 的文档找出来或者把没有 item 字段的文档找出来呢?
小菠萝测试笔记
2021/06/10
2K0
Oracle 数据库sql语句修改表字段的字段类型和长度
如图所示,该字段的类型是 varchar,长度是 50。 我修改它的长度。 alter table nresa_upgrade modify (name varchar(200)); 修改完后长度就变成 200 了。
小蓝枣
2021/12/01
2.7K0
Oracle 数据库sql语句修改表字段的字段类型和长度
常用的数据库的字段类型及大小比较_sql字段长度
ORACLE的数据类型 常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 最大长度2000 bytes ` VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过严格测试,无千虫问题 LONG 超长字符串 最大长度2G(231-1) 足够存储大部头著作 RAW 固定长度的二进制数据 最大长度2000 bytes 可存放多媒体图象声音等 LONG RAW 可变长度的二进制数据 最大长度2G 同上 BLOB 二进制数据 最大长度4G CLOB 字符数据 最大长度4G NCLOB 根据字符集而定的字符数据 最大长度4G BFILE 存放在数据库外的二进制数据 最大长度4G ROWID 数据表中记录的唯一行号 10 bytes **.*.*格式,*为0或1 NROWID 二进制数据表中记录的唯一行号 最大长度4000 bytes NUMBER(P,S) 数字类型 P为整数位,S为小数位 DECIMAL(P,S) 数字类型 P为整数位,S为小数位 INTEGER 整数类型 小的整数 FLOAT 浮点数类型 NUMBER(38),双精度 REAL 实数类型
全栈程序员站长
2022/10/04
3.9K0
常用的数据库的字段类型及大小比较_sql字段长度
Kotlin (Java) 获取 mysql 数据库的所有表,表的所有字段,注释,字段类型
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource import org.slf4j.LoggerFactory import org.springframework.stereotype.Service import java.sql.* import java.util.* import javax.sql.DataSource @Service class Mysql2OdpsService { /** * 生成 ODPS DD
一个会写诗的程序员
2019/10/15
9.9K0
数据库导入sql文件_mysql导入sql文件命令
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/11
19.7K0
数据库导入sql文件_mysql导入sql文件命令
SQL 获取一行中多个字段的最大值
在 chaos(id,v1,v2,v3) 表中获取每个 id 对应的 v1、v2、v3 字段的最大值,v1、v2、v3 同为数值类型。
白日梦想家
2020/12/14
11.6K0
从补丁到漏洞分析——记一次joomla漏洞应急
作者:LoRexxar'@知道创宇404实验室 2018年1月30日,joomla更新了3.8.4版本,这次更新修复了4个安全漏洞,以及上百个bug修复。 https://www.joomla.org/announcements/release-news/5723-joomla-3-8-4-release.html 为了漏洞应急这几个漏洞,我花费了大量的时间分析漏洞成因、寻找漏洞触发位置、回溯逻辑,下面的文章比起漏洞分析来说,更接近我思考的思路,希望能给大家带来不一样的东西。 背 景 其中的4个安全漏
Seebug漏洞平台
2018/03/30
9970
从补丁到漏洞分析——记一次joomla漏洞应急
从补丁到漏洞分析 --记一次joomla漏洞应急
2018年1月30日,joomla更新了3.8.4版本,这次更新修复了4个安全漏洞,以及上百个bug修复。
LoRexxar
2023/02/21
1.4K0
从补丁到漏洞分析 --记一次joomla漏洞应急
文件的指针位置
f = open('指针测试.txt','a+',encoding='utf-8') # 这里会直接创建文件,可查看a,w,r,以及分别加加号‘+’和加b的区别 # tell() 显示文件指针 print(f.tell()) # 更改文件指针的位置 seek(偏移量,whence) # 偏移量是数字,距离whence字符数 # whence:0:文件开头 1:当前位置 2:文件结尾 seek(10,0) # 可能只有rb或者rb+的时候偏移量才能是负数,也就是倒着数,这里笔者没有具体测试 # f.
汪凡
2018/05/29
1.4K0
通过IP获取位置
昨天写了个获取天气的API,那么我也该写一个调用这个API的Demo了。不过获取天气必须要城市名称,而Demo上不可能在弄一个输入城市的吧……好在,可以通过IP获取所在城市。 <?php if(iss
FHYC
2018/06/22
1.8K0
从补丁到漏洞分析——记一次joomla漏洞应急
2018年1月30日,joomla更新了3.8.4版本,这次更新修复了4个安全漏洞,以及上百个bug修复。
Seebug漏洞平台
2018/03/09
1.1K0
从补丁到漏洞分析——记一次joomla漏洞应急
获取地理位置
可根据获取到的经纬度查询到所在的地理位置。 <p><button onclick="geoFindMe()">Show my location</button></p> <div id
ProsperLee
2018/10/24
2K0
获取地理位置
sql文件怎么导入sql server数据库_sql怎么导入数据库
其实导入的方法很简单,可32313133353236313431303231363533e78988e69d8331333365633836以采用工具导入和只用mysql命令界面导入两种方式,mysql的数据库图形界面工具是很多的,用起来也比较方便。
全栈程序员站长
2022/11/11
11.7K0
sql文件怎么导入sql server数据库_sql怎么导入数据库
RMAN 数据库克隆文件位置转换方法
      在使用RMAN克隆数据库时,如果辅助数据库(新数据库)使用了与目标数据库(原数据库)使用了不同的路径,那么就存在位置转换的问题。在Oracle中,控制文件用于定位数据文件以及联机重做日志文件,如果没有正确的转换,控制文件压根就找不到相应的数据文件,日志文件。对此Oralce为我们提供了三种文件位置的转换方法。本文即是对这三种转换方法的描述。
Leshami
2018/08/13
1.1K0

相似问题

joomla sql架构中缺少的字段

12

用数据库Joomla文章/模块位置的数据填充字段?

12

Sql获取字段的字符位置

31

Joomla PHP文件位置

10

设置数据库链接时Crystal Reports SQL文件中缺少的字段

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文