首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >数据集python上的Groupby函数

数据集python上的Groupby函数
EN

Stack Overflow用户
提问于 2018-09-30 00:02:32
回答 2查看 134关注 0票数 1

我有以下数据集,用于我的研究。最终输出是斜率。

代码语言:javascript
复制
import numpy as np
import pandas as pd
from scipy import stats

df=pd.read_excel('I:/Python/Data/Copy.xlsx')


df_np=np.array(df)

x=np.array(df_np[:,14],dtype=float)
y=np.array(df_np[:,12],dtype=float)



for i, pair in enumerate(zip(x, y)):


slope, intercept, r_value, p_value, std_err = stats.linregress(np.delete(x,i),np.delete(y,i))

print('slope', slope, 'for data without pair', i, ':', pair)          

在上面的代码中,我需要的帮助是测试事件分别输出,斜率值分别输出。test_events与坡度值之间不存在1:1的关系。

假设每个测试事件中有10个ID。

测试IDs=0,1,2,...9

测试event=11,12、13、14

这意味着在每个测试事件中,我需要每个ID的斜率

代码语言:javascript
复制
Test event     ID     x=axis      y-axis     slope

这方面的任何帮助都是很好的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-30 00:39:21

一种方法是按Test Event对DataFrame进行分组,然后循环遍历groupby对象,并在每个组上运行现有代码。阅读关于迭代组in the docs的内容。

代码语言:javascript
复制
import numpy as np
import pandas as pd
from scipy import stats

df=pd.read_excel('I:/Python/Data/Copy.xlsx')

grouped = df.groupby('Test Event')

for test_event, g in grouped:
    print('Test Event: {}'.format(test_event))
    df_np=np.array(g)

    x=np.array(df_np[:,1],dtype=float)
    y=np.array(df_np[:,2],dtype=float)

    for i, pair in enumerate(zip(x, y)):

    slope, intercept, r_value, p_value, std_err = stats.linregress(np.delete(x,i),np.delete(y,i))

    print('slope', slope, 'for data without pair', i, ':', pair) 
票数 1
EN

Stack Overflow用户

发布于 2018-09-30 01:09:51

您可以使用任何数组作为linegress函数的输入。这包括您的数据帧中的系列:

代码语言:javascript
复制
linregress(df['x-axis'], df['y-axis'])

使用pandas groupby时,您可以通过apply连接到每个组

代码语言:javascript
复制
grouped = df.groupby('Test Event')
grouped.apply(lambda x: pd.Series(linregress(x['x-axis'], x['y-axis']))).rename(columns={
    0: 'slope',
    1: 'intercept',
    2: 'rvalue',
    3: 'pvalue',
    4: 'stderr'}).reset_index()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52570122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档