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

求助:如何合并CSV文件构建符合要求的深度学习标签数据集?

解决Image列与Level列的合并问题

嘿Vidit,我明白你现在的困扰——要把分散的Image列和level列合并成每个左右眼条目对应等级的格式对吧?别担心,我来给你一步步讲清楚怎么用pandas搞定这个问题,先分两种常见的场景来处理:


场景一:已有完整的Image列表,需关联对应Level

如果你的数据里已经有所有1_left、1_right这类Image条目,而Level是按ID(比如数字1、2...)分组存储的,那核心是从Image名称里提取ID,再和Level表关联:

步骤代码:

import pandas as pd

# 1. 读取Excel文件中的Image数据和Level数据
# 假设Image数据在"Images"工作表,Level数据在"Levels"工作表
df_images = pd.read_excel("你的文件名.xlsx", sheet_name="Images")
df_levels = pd.read_excel("你的文件名.xlsx", sheet_name="Levels")

# 2. 从Image列提取ID(比如从"1_left"中取出"1")
df_images["ID"] = df_images["Image"].str.split("_").str[0]
# 转换ID为数值类型,确保和Level表的ID类型一致
df_images["ID"] = df_images["ID"].astype(int)
df_levels["ID"] = df_levels["ID"].astype(int)

# 3. 按ID合并两个表
merged_df = pd.merge(df_images, df_levels, on="ID", how="left")

# 4. 保留需要的列并整理格式
final_df = merged_df[["Image", "level"]]
print(final_df.head())

场景二:只有ID和Level,需生成左右眼Image条目

如果你的原始数据里只有每个ID对应的Level值,需要生成_left和_right的Image条目并对应Level,那可以这样做:

步骤代码:

import pandas as pd

# 1. 读取包含ID和Level的原始数据
df = pd.read_excel("你的文件名.xlsx")

# 2. 生成左眼Image条目
df_left = df.copy()
df_left["Image"] = df_left["ID"].apply(lambda x: f"{x}_left")

# 3. 生成右眼Image条目
df_right = df.copy()
df_right["Image"] = df_right["ID"].apply(lambda x: f"{x}_right")

# 4. 合并左右眼数据并整理列顺序
merged_df = pd.concat([df_left, df_right], ignore_index=True)
final_df = merged_df[["Image", "level"]]

# 5. 按Image名称排序(可选)
final_df.sort_values("Image", inplace=True)
print(final_df.head())

为什么之前merge/join没成功?

大概率是因为没有找到正确的关联键:要么是没从Image名称里提取出和Level表匹配的ID,要么是ID的类型不匹配(比如一个是字符串,一个是整数),导致无法正确关联。上面的代码里已经处理了这些细节。

你可以根据自己实际的数据结构选择对应的方法,要是还有问题可以告诉我数据的具体结构哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:02:56