You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于强度值1130.07拆分合并生成的大型dataframe

实现方案

用pandas可以快速完成拆分,核心思路是先给不同的原始数据集打分组标识,再按分组拆分转成多列格式。

完整代码示例

import pandas as pd
import numpy as np

# 1. 生成分组标识:匹配到强度1130.07时切换分组
# atol参数可根据实际数值精度调整,避免浮点数存储误差导致匹配失败
# 若1130.07是每组的结束行,保留下面的shift操作;若是起始行直接删除shift部分即可
df['group_id'] = np.isclose(df['intensity'], 1130.07, atol=1e-4).cumsum().shift(1, fill_value=0)

# 2. 按分组拆分转成多列
# 仅提取波长列作为新列的写法:
result = df.groupby('group_id')['wavelength'].apply(
    lambda x: x.reset_index(drop=True)
).unstack(level=0)

# 可选:自定义列名
result.columns = [f'dataset_{i+1}' for i in range(result.shape[1])]

补充说明

  • 要是需要同时保留每组的强度和波长数据,把第二步groupby后的列换成['intensity', 'wavelength']即可,最终会生成多层列名的DataFrame,第一层是字段名,第二层是数据集编号
  • 不同原始数据集长度不一致时,较短的数据集末尾会自动填充NaN

内容的提问来源于stack exchange,提问作者zenezko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:24:01