【发布时间】:2019-03-06 02:29:56
【问题描述】:
数据集优先/输出优先:
我需要反复删除多个数据点以获得斜率。评论部分说明删除了哪些数据点以获得斜率。
我只删除一个数据点的代码如下:
import numpy as np
import pandas as pd
from scipy import stats
df=pd.read_excel('I:/Python/Data/trial.xlsx')
grouped = df.groupby('TestEvent')
df["slope"] = np.NaN
for test_event, g in grouped:
print('TestEvent: {}'.format(test_event))
for i in g.index:
others = g.loc[g.index != i, ["x-axis", "y-axis"]]
slope, intercept, r_value, p_value, std_err = stats.linregress(others)
print ("slope", slope, 'for data without pair', i)
df.loc[i, "slope"] = slope
df.to_excel('trial4.xlsx')
使用上面的代码 (n=1),我可以得到所有 10 个斜率,因为一次删除了一个数据点。 __ 现在我需要删除两个数据点(或 n>1),同时为两个序列(111 和 112)保持一个不变,如图所示。
每个序列最终会给出 90 个斜率数据点(0,....9 迭代 9 次)。
最后在输出数据框中,每个序列将有 90 个斜率值。
在所有最终数据帧中将有 180 个斜率值(对于序列 111 和 112)
感谢阅读。非常感谢您对此事的任何帮助。
【问题讨论】:
标签: python python-3.x pandas pandas-groupby itertools