添加新行并在特定条件下复制单元格的值

文森特75

我有一个使用熊猫处理的 csv 文件。

id                                    raw_value     manual_raw_value
00219b14-37d1-42b2-95e8-65fe2a94b7a5    6,35        6,35
402048fd-868d-446a-8468-07a57f5386bf    11,68        11,68
33405269-c273-4c13-83d4-a973c42b72eb    VOTRE        VOTRE
8727fae7-4427-4285-945b-61c8a97b0017    AVELARVRO   AVELARVRO
006d9acb-9fed-44cd-8cc0-3f0710380484    2292        2292
9cf97fc4-d79b-4125-85d2-7dabc056caa3    questions.  questions.
6f63010b-2ccc-4e7a-bfe6-aab1dfc65ea3    nb            nb
a76d4f54-5036-4212-ab5a-921724c05910    tes          les
75d8b257-9bc3-431b-9bf6-1cc64c647292    937,99     937,99
4f6c38e9-6500-4172-a472-ba8532db05d2    à           à
229a883a-5e46-4c16-a74c-22936b6bb491    et         et
47293ec7-c2d5-4312-94a2-1bc963069096    TTC        TTC
d6841ca2-8dec-416f-ad20-3ce2da8d3e27    1          1
d7c152ed-4718-4430-9b54-b8289af78cb8    620       620
f8771e48-c17d-45c9-9f08-1e512197e998    Echéance    Echéance
fa821937-5f98-4249-abcf-f662a693c2b0    vos        vos
417a087a-3948-46aa-bfdf-27cf6c011d5c    ROB21     ROB21
f93c4e8c-b803-4501-bbee-67860c1ad065    Pièce     Pièce
2fb756fe-596b-4ed5-86f0-a9cb26e7098c    AGRIAL     AGRIAL
38dd4cde-ed72-4d07-be87-ee54cdb3eb5f    désignation désignation
66f395d7-aeb1-4ec9-a38a-d59a57244c5e    des         des
1858c031-488a-4f8c-9f51-76e7dc30648b    taux       taux
af853348-6212-4f58-9ba1-6a8d9a14e033    13s          13s
372c9afa-0f3d-4514-b9e3-6c0516d16f9c    2            2
918d3724-a739-4cd4-b4dd-68078d0398da    par         par
4cac4573-6d98-453a-82b3-61d2619af96c    le           le
d8a303ca-701c-441b-9697-649358d0fe9e    mois,       mois,
f5ff6420-bd55-43c7-a5f4-1f10828daa7e    32           32
ca48d1f7-333f-4af4-8654-892414cad579    21/07/2016  21/07/2016
a78daadd-7194-4e27-820f-ed97a6cfd109    FR           FR

现在,我想添加关于以下的新行id column:对于每个id我有一组ids. 我们以 Fpr 为例first id

00219b14-37d1-42b2-95e8-65fe2a94b7a5 

这是 id 是图像的名称:

00219b14-37d1-42b2-95e8-65fe2a94b7a5.png

然后我有如下相同图像的 id 变体:00219b14-37d1-42b2-95e8-65fe2a94b7a5 _blur.png 00219b14-37d1-42b2-95e8-65fe2a94b7a5 _noise.png 1954b7a5 _sharpen.png 1953-b73-b72a5-png 1404-b73-b7a5-png 1404-b73-b7a5 42b2-95e8-65fe2a94b7a5 _affine.png

我想要做的就是通过设置manual raw value为原始id这些图像的 id 添加到 csv 文件然后我得到以下

例如对于第一个 id

id                                        raw_value     manual_raw_value
00219b14-37d1-42b2-95e8-65fe2a94b7a5          6,35        6,35
00219b14-37d1-42b2-95e8-65fe2a94b7a5`_blur`               6,35
00219b14-37d1-42b2-95e8-65fe2a94b7a5`_noise`              6,35 
00219b14-37d1-42b2-95e8-65fe2a94b7a5`_sharpen`            6,35 
00219b14-37d1-42b2-95e8-65fe2a94b7a5`_affine`             6,35

我想过这个解决方案

import glob
import os
path="/home/images/"
os.chdir(path)
images=glog.glob("*.png")
id_img,variant_img = set([x.rsplit('.', 1)[0].rsplit('_') for x in images_name_valid])
for img in id_img:
   if (df_valid.id == img):
       value = df_valid.loc[df_valid.id == img, 'manual_raw_value'].item()
       # here l need to add rows and associate them the `value`


       00219b14-37d1-42b2-95e8-65fe2a94b7a5_blur
       00219b14-37d1-42b2-95e8-65fe2a94b7a5_noise
       00219b14-37d1-42b2-95e8-65fe2a94b7a5_sharpen
       00219b14-37d1-42b2-95e8-65fe2a94b7a5_affine

谢谢

耶斯列

我认为您需要自定义函数 withapplyaxis=1for expand DataFrameto list,最后使用concatwith reindex_axis

tech = ['blur', 'noise', 'sharpen', 'affine']
df = pd.read_csv('data.csv')
print (df)
                                     id    ocr raw_value manual_raw_value
0  00219b14-37d1-42b2-95e8-65fe2a94b7a5  ABBYY      6,35             6,35
1  402048fd-868d-446a-8468-07a57f5386bf  ABBYY     11,68            11,68
2  33405269-c273-4c13-83d4-a973c42b72eb  ABBYY     VOTRE            VOTRE

dfs = []
def f(x):
    df = pd.DataFrame({'id':[x['id'] + '_' + t for t in tech],
                       'ocr':x['ocr'],
                       'manual_raw_value':x['manual_raw_value'],
                       'raw_value':''})
    #print (df)
    dfs.append(df)

df.apply(f, axis=1)

df1 = pd.concat(dfs)
#print (df1)

df2 = pd.concat([df, df1], ignore_index=True).reindex_axis(df.columns, axis=1)

print (df2)
                                              id    ocr raw_value  \
0           00219b14-37d1-42b2-95e8-65fe2a94b7a5  ABBYY      6,35   
1           402048fd-868d-446a-8468-07a57f5386bf  ABBYY     11,68   
2           33405269-c273-4c13-83d4-a973c42b72eb  ABBYY     VOTRE   
3      00219b14-37d1-42b2-95e8-65fe2a94b7a5_blur  ABBYY             
4     00219b14-37d1-42b2-95e8-65fe2a94b7a5_noise  ABBYY             
5   00219b14-37d1-42b2-95e8-65fe2a94b7a5_sharpen  ABBYY             
6    00219b14-37d1-42b2-95e8-65fe2a94b7a5_affine  ABBYY             
7      402048fd-868d-446a-8468-07a57f5386bf_blur  ABBYY             
8     402048fd-868d-446a-8468-07a57f5386bf_noise  ABBYY             
9   402048fd-868d-446a-8468-07a57f5386bf_sharpen  ABBYY             
10   402048fd-868d-446a-8468-07a57f5386bf_affine  ABBYY             
11     33405269-c273-4c13-83d4-a973c42b72eb_blur  ABBYY             
12    33405269-c273-4c13-83d4-a973c42b72eb_noise  ABBYY             
13  33405269-c273-4c13-83d4-a973c42b72eb_sharpen  ABBYY             
14   33405269-c273-4c13-83d4-a973c42b72eb_affine  ABBYY             

   manual_raw_value  
0              6,35  
1             11,68  
2             VOTRE  
3              6,35  
4              6,35  
5              6,35  
6              6,35  
7             11,68  
8             11,68  
9             11,68  
10            11,68  
11            VOTRE  
12            VOTRE  
13            VOTRE  
14            VOTRE  

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EXCEL:在特定条件下更改单元格的颜色

来自分类Dev

获取条件下特定单元格的总和

来自分类Dev

删除行(基于条件)并复制单元格(基于条件)

来自分类Dev

如何在ORACLE中累积特定列并在特定条件下释放值

来自分类Dev

Excel VBA-如果单元格值满足条件,则在工作表之间复制单元格

来自分类Dev

当描述单元格中有特定单词时,如何复制单元格值

来自分类Dev

VBA在满足条件时复制单元格

来自分类Dev

Excel表查找和复制单元格值

来自分类Dev

查找并复制单元格中的某些值

来自分类Dev

搜索工作表并复制单元格值

来自分类Dev

如果值等于1,则复制单元格数组

来自分类Dev

如何修复我复制单元格值的代码?

来自分类Dev

VBA-复制单元格区域(随机行)

来自分类Dev

从第n行复制单元格

来自分类Dev

在特定条件下获取数据集的特定值

来自分类Dev

如果相邻单元格符合条件,则复制单元格内容

来自分类Dev

根据单元格值复制行,然后添加小计

来自分类Dev

根据单元格值复制行,然后添加小计

来自分类Dev

Excel VBA复制单元格值,如果> 0到左侧的单元格

来自分类Dev

如果单元格与列名匹配,则在一行中复制单元格

来自分类常见问题

获取特定条件下的数据透视值

来自分类Dev

linq在特定条件下获得多个值

来自分类Dev

在特定条件下计算数组中的值

来自分类Dev

获取特定条件下的数据透视值

来自分类Dev

在特定条件下查找ArrayList中的值

来自分类Dev

循环和复制单元格

来自分类Dev

读取文件中的struct数组,并在特定条件下读取printf特定行[C语言]

来自分类Dev

计算特定条件下的行均值

来自分类Dev

Python-在特定条件下选择数组的行?

Related 相关文章

热门标签

归档