python - 在python df中为变量分配一个运行编号
问题描述
评估校准数据
对于系统校准,我需要比较参考('ref')和测试('test')变量。df 看起来像这样(具有 >3000 个变量的 df 部分):
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”列中。
这是到目前为止的完整图表, 使用提取的平原进行完全校准 因为我对python很陌生,所以我对这样的函数一无所知;)提前谢谢
解决方案
考虑使用滚动差异:
df.dropna(inplace=True)
df['diff'] = df['ref'].diff()
您可能更喜欢离散导数。只需除以时差。
有了这些,您将如何分配一个显示步数的运行变量?
请编辑您的问题以反映您当前正在使用的代码,或者最好发布您自己问题的答案。(是的,SO鼓励您回答问题,甚至是您提出的问题!)
推荐阅读
- javascript - 在页面上选择所有 getElementsByClassName 而不指定 [0] 等
- android - 如何在 Android 中注册我的应用程序以打开具有自定义文件类型的电子邮件附件?
- mysql - Jpa 多对多关系不起作用
- google-sheets - Google 表格:查询 date>now() 不返回任何内容的位置
- c# - 如何将此 SQL 查询转换为 EF Core 中的 LINQ 查询?
- r - 在日期上绘制变量:ggplot 中的时间问题
- ms-word - 如何使用 WIX 打包 VSTO Word 插件以进行部署(到 Office 32 位)?
- javascript - 如何设置 react-stripe-checkout 表单的样式?
- function - 返回匿名函数而不是 lambda 函数
- excel - 为什么 IF 中的范围会根据第一个条目产生结果?