用两个数组numpy

时间:2016-10-27 09:58:48

标签: python arrays numpy

我需要你的帮助才能通过我的脚本获得解决方案。

我有2个阵列:

==>第一个得到1列,名为code_client。我们将调用文件:excel.txt。 ==>第二个列有两列:rowidcode_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 fileBDD file之间得到相同的数字,我会将code_clientexcel 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

1 个答案:

答案 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,密钥为dictrowid;并且您的code_client是值列表