莱布尼兹的手稿110 2021-04-12 15:09 采纳率: 0%
浏览 136

用python处理两列拉曼数据,求大佬解答

有一个问题:我正在尝试做一个拉满数据的校准正则,现有两列数据,第一列是拉曼频移值,第二列是拉曼频移值对应的绝对强度值,我需要在几个特定的拉曼峰值值的周围±5的范围内选出绝对强度最大的对应的拉曼峰值,我学习了正则表达式后觉得不好实现,网上我也没找到啥可参考的,大佬们有什么思路吗?

举一个例子:我有几个特定值比如328.8,我取328.8±5的区间,然后找到在这个区间内对应的所有的绝对强度绝对强度(也就是第二列)的最大值,然后在找到与之对应的拉曼峰值。

下图是数据截图:

 

  • 写回答

3条回答 默认 最新

  • CSDN专家-Yang 2021-04-12 15:41
    关注

    试试这个:

    # 导入工具包
    import pandas as pd
    import numpy as np
    np.random.seed(12)
    # 模拟的数据, 可以用自己真实的数据
    data = pd.DataFrame({'拉曼频移值':np.random.randint(5,1000,50),
                         '绝对强度值':np.random.randint(100,500,50)})
    
    
    #需要查的值, 就是你说的328.8, 举例如果是274
    i = 274
    # 索引位置, 查找274对应的索引及上下5个数
    i_index = data['拉曼频移值'][data['拉曼频移值'].values==i].index[0]
    datai = data.iloc[i_index-5:i_index+5]
    
    # 输出绝对强度值最大时的拉曼频移值、绝对强度值
    print(datai.loc[datai['绝对强度值'].idxmax()])
    
    
    评论

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容