对于系统校准,我需要比较参考('ref')和测试('test')变量。 df看起来像这样(df中有> 3000个变量的部分):
df=pd.read_csv(file)
df
Time ref test
sec Q Q
1 nan nan
2 nan nan
3 5,00 4,89
4 5,08 5,00
5 4,93 4,97
6 nan nan
7 nan nan
8 14,83 14,96
9 14,87 15,13
10 14,72 14,83
11 nan nan
12 nan nan
13 nan nan
14 nan nan
15 24,37 24,35
16 24,29 24,39
17 24,28 24,50
18 24,26 24,41
19 nan nan
为比较变量“ ref”和“ test”,我需要提取具有滞后作用的平原。可以手动完成:
grades = []
for row in df['ref']:
if row < 5,5:
grades.append('A')
elif row < 15,5:
grades.append('B')
elif row < 26:
grades.append('C')
else:
grades.append('Failed')
df['Result_Ref'] = grades
df.dropna(inplace=True)
但是该函数应通过滞后(+ -3%)来评估“参考”和“测试”,并自动分配A,B,C,...。结果应如下所示:
df
Time ref test Result_Ref
sec Q Q
3 5,00 4,89 A
4 5,08 5,00 A
5 4,93 4,97 A
8 14,83 14,96 B
9 14,87 15,13 B
10 14,72 14,83 B
15 24,37 24,35 C
16 24,29 24,39 C
17 24,28 24,50 C
18 24,26 24,41 C
由于时间和步骤/平原(A,B,C,.... Z)是无限的(最多20个),因此我要搜索的功能应在df中搜索(“ ref”,“ test” )进行下一步(重要)。
when x(i+1)>x(i)), than append('A:Z')
并将运行变量(1、2、3,..或A,B,C ...)分配到“ Result_Rev”列中。
这是到目前为止的完整图表 full calibration with extracted plains 由于我是python的新手,所以我对这种功能一无所知;)提前谢谢了
答案 0 :(得分:0)
考虑使用rolling difference:
df.dropna(inplace=True)
df['diff'] = df['ref'].diff()
您可能希望使用离散导数。 只需除以时差即可。
有了这个,您将如何分配一个显示步骤号的运行变量?
请编辑您的问题以反映您当前正在使用的代码, 或理想地发布您自己问题的答案。 (是的,因此,鼓励您回答问题,甚至是您提出的问题!)