我有一个使用pandas进行处理的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
l都有一组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
00219b14-37d1-42b2-95e8-65fe2a94b7a5 _sharpen
。PNG
00219b14-37d1-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
谢谢
答案 0 :(得分:1)
我认为您需要使用自定义功能apply
和axis=1
展开DataFrame
到list
,最后一次使用concat
和reindex_axis
:< / p>
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