python - pandas DataFrame(Python)的基线减法/删除
问题描述
我有一些细胞发光的实验延时数据。不幸的是,基线会随着时间而变化(参见附图,例如https://i.stack.imgur.com/zjlBR.png),这使得分析数据变得更加困难。对于不同的样本,基线以不同的方式变化(例如,一些是线性减少/增加)。
我想知道是否有某种方法可以删除我的 DataFrame 中每一列的基线。我研究了 scipy 的 signal.detrend,但由于它不是完全线性的,在这种情况下它似乎没有用。在发布这个问题之前我已经搜索了几天,但我还没有找到合适的解决方案。我考虑过绘制局部最小值并减去它们,但我发现这种工具过于生硬,并且在包含 40 列的整个 DataFrame 上实现是不明智的。
我还找到了 peakutils 基线模块,但我发现它并不令人满意。有什么我错过的吗?这应该远不是实验数据中的一个独特问题,所以如果 SciPy 没有合适的模块,我会感到非常惊讶。下面是我希望能够从中减去基线的数据类型示例,有效地消除了周期性并使其或多或少呈线性。
import numpy as np
n = 1000
limit_low = 0
limit_high = 0.48
my_data = np.random.normal(0, 0.5, n) \
+ np.abs(np.random.normal(0, 2, n) \
* np.sin(np.linspace(0, 3*np.pi, n)) ) \
+ np.sin(np.linspace(0, 5*np.pi, n))**2 \
+ np.sin(np.linspace(1, 6*np.pi, n))**2
scaling = (limit_high - limit_low) / (max(my_data) - min(my_data))
my_data = my_data * scaling
my_data = my_data + (limit_low - min(my_data))
(代码由用户 Swier 提供)
解决方案
推荐阅读
- python - Python 和 Pandas 的问题:将计算列添加到包含来自函数的数据的数据框会提供错误
- snowflake-cloud-data-platform - 可以在外部阶段列出文件但不能访问其中的文件?
- python - 使用 Where 条件对 Panda 数据帧进行采样
- tomcat - Tomcat启动但主页打不开--与Anaconda的端口不兼容
- python - kivyMD 将变量调用为 kivy 语言
- machine-learning - 通过在 m 行的数据集上应用一次 PCA 与 IncrementalPCA 对 x 批大小为 m/x 的潜在加速?
- spring - 在 Spring Boot 中按内容类型缓存静态文件
- java - 使用颤振获取我的手机连接的wifi路由器的mac地址
- intellij-idea - PyCharm/IntelliJ Python 多行语言注入规则
- jpeg - 尝试在 Red Hat 8 上安装 gdal 3.0.4