我需要你的帮助才能通过我的脚本获得解决方案。
我有2个阵列:
==>第一个得到1列,名为code_client
。我们将调用文件:excel.txt
。
==>第二个列有两列:rowid
和code_client
。我们将调用文件:BDD.txt
。
我想在第一个文件中用与第二个文件关联的rowid替换值。
第一个文件如下:
code_client
208
1643
1595
2607
2608
2470
1547
481
226
558
第二个文件如下:
rowid,code_client
1,1
2,2
3,4
4,5
5,6
6,7
7,8
8,9
9,10
10,11
11,12
12,13
13,14
14,15
这是我的剧本:
# Script permettant de remplacer le code_client par le rowid de la BDD
# coding: utf8
import numpy as np
# Importation du fichier excel
excel = np.loadtxt('/Users/valentinjungbluth/Desktop/excel.txt',
dtype = int)
#print excel
BDD = np.genfromtxt('/Users/valentinjungbluth/Desktop/BDD.txt',
dtype = [('rowid','i8'),('code_client','i8')],
delimiter = ',')
for row1 in excel :
if excel == BDD['code_client'] :
print 'oui'
else :
print 'non'
我不知道如何联系价值观。我想我必须阅读excel file
中的行并与BDD file
进行比较。如果我在code_client from excel file
和BDD file
之间得到相同的数字,我会将code_client
从excel file
替换为rowid
BDD.file
。我继续。
是否可以获得一些帮助?
谢谢!
编辑:预期文件
第一个文件必须成为:
code_client ==> rowid
208 ==> this code_client in the second file gives rowid = 183
1643 ==> this code_client in the second file gives rowid = 1498
1595 ==> ...
2607
2608
2470
1547
481
226
558
答案 0 :(得分:1)
我不确定numpy会做什么,但我想这就是你想要的
<div>
您也可以像这样构建dictionary = dict()
for data in BDD:
# We are building a dictionary to associate the code_client with rowid
dictionary[data['code_client']] = data['rowid']
for code_client in excel:
# From the code_client, you can get the rowid from the dictionary
row_id = dictionary.get(code_client, None)
print code_client, "=>", row_id # Do what you want
:
dictionary
我假设您的dictionary = dict([(data['code_client'], data['row_id']) for data in BDD])
是BDD
list
,密钥为dict
和rowid
;并且您的code_client
是值列表