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

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

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

下图是数据截图:

 

试试这个:

# 导入工具包
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()])

 

试试这段

# 导入工具包
import pandas as pd
import numpy as np

# 读取数据
data = pd.read_csv('c:/users/用户/desktop/17.1.txt',sep=' ') #分隔符更具文件修改
# 更改列名
data.columns = ['拉曼峰值','绝对强度']

# 筛选数据, 根据±5计算,区间上下限
i = 328.5
datai = data[(data['拉曼峰值']>i-5)&(data['拉曼峰值']<i+5)]

print(datai.loc[datai['绝对强度'].idxmax()]['拉曼峰值'])

 

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632