【发布时间】:2019-03-06 01:09:57
【问题描述】:
我正在努力获得以下输出。
数据集优先:
我一直在使用以下代码来获取输出,但每次都失败:
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[:,3],dtype=float)
y=np.array(df_np[:,4],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)
这是需要的:对于每个测试事件,都有一个唯一的 ID。对于每个唯一 ID,都有一个斜率。图片的评论部分提到了获得斜率的方式。
我该如何解决这个问题?
在jupyter notebook中,最终需要的输出如下:
它只为测试事件 111 和 112 的“没有对 9 的数据”提供输出。
【问题讨论】:
-
你的代码有什么输出?
-
@Stuart,我添加了使用 Jupyter notebook 获得的输出。
-
@Stuart,从输出图像可以看出,代码只查看第 9 对事件 111 和事件 112。我期待它从第 0 对到第 9 对。跨度>
-
检查是否为
x和y选择了正确的列 - 请记住编号从 0 开始。它可能应该是x=np.array(df_np[:,3]...和y=np.array(df_np[:,4]...。还要检查你的表格(上面似乎丢失了) -
我的意思是上面的代码中没有显示缩进(制表符)。我假设您在实际使用的代码中有缩进。请尝试在上面的代码中添加缩进,使其匹配。这可能是问题的根源。
标签: python python-3.x pandas numpy jupyter-notebook