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

创建重复Dataframe行并填充列表值,重复路径转为NaN的实现方法

实现步骤与代码示例

步骤1:构建路径与数据的映射

首先把你读取到的各路径下的列表数据,整理为路径为key、对应数据列表为value的字典,示例结构如下:

path_data_map = {
    "/global/162940/mill/scanfiles0001": [
        [256, 10.0, 2605, 100, 86000],
        [256, 20.0, 5210, 100, 86000],
        [256, 40.0, 10421, 100, 86000],
        [256, 50.0, 13026, 100, 86000]
    ],
    "/global/162940/mill/scanfiles0002": [
        [256, 60.0, 15631, 100, 86000],
        [256, 80.0, 20841, 100, 86000],
        [256, 120.0, 31262, 100, 86000]
    ]
}

如果你的数据是从文件批量读取,可通过遍历路径生成该映射字典。

步骤2:合并展开数据

使用pandas的explode方法将每个路径对应的多行数据展开,再拆分出A-E字段:

import pandas as pd
import numpy as np

# 替换为你自己的初始DataFrame
df = pd.DataFrame({
    "JobID": [43402866, 43408681],
    "Path": ["/global/162940/mill/scanfiles0001", "/global/162940/mill/scanfiles0002"]
})

# 绑定每个路径对应的所有数据
df["data_list"] = df["Path"].map(path_data_map)
# 展开为多行
df = df.explode("data_list", ignore_index=True)
# 拆分列表为A-E五列
df[["A", "B", "C", "D", "E"]] = pd.DataFrame(df["data_list"].tolist(), index=df.index)
# 删除临时列
df = df.drop("data_list", axis=1)

步骤3:处理重复Path字段

同一个JobID下仅保留第一行的Path值,其余替换为NaN:

df.loc[df.duplicated("JobID"), "Path"] = np.nan

执行完上述代码后,df即为你需要的最终结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 01:54:04