为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据字符串合并具有不同长度的两个数据帧包含

如何根据字符串合并具有不同长度的两个数据帧包含

皈依舞 2022-05-24 16:21:12
我正在从事医学成像中的数据增强工作。我在 Pandas 数据框中有 100 个带有标签(0 和 1)的原始图像名称。我添加了新图像和它们的名称,并带有一些后缀。我的原始图像具有以下名称:Image1、Image2、Image3、Image4,而我的增强数据具有以下名称:Image1_1、Image1_2、Image2_1、Image2_2、Image3_1、Image3_2、Image4_1、Image4_2 等。我的 Pandas DataFrame 包含两列注释:文件名和标签。我的另一个 Pandas Dataframe 仅包含原始文件名和没有标签的增强文件名。filename = [f for f in os.listdir(path_to_dir_with_augmented_images)]annotations = pd.read_csv("annotations.csv", names=["filename", "label"])filenames = []for file in filename:    filenames.append(file)data = pd.DataFrame(filenames, columns=["filename"]我的注释文件有 100 个长度,数据文件有 1000 以上。我想要输出,例如:filename, labelImage1, 0Image1aa1, 0Image1aa2, 0Image2, 1Image2baa1, 1Image2baasa2, 1如何在熊猫中做到这一点?
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

import pandas as pd


#create dummy data

data = pd.DataFrame([['Image1aa1'], ['Image1aa2'], ['Image2baa1'], ['Image2baasa2']], columns=['filename'])

annotations = pd.DataFrame([['Image1',1],['Image2',0]], columns=['filename','label'])


for name, l in zip(annotations.filename,annotations.label):

    temp = data[data['filename'].str.match(name)]

    temp['label'] = l

    annotations = annotations.append(temp)


查看完整回答
反对 回复 2022-05-24
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号