我有2个csv,我正在使用一个特定的键cod_enti
。
data.csv:
cod_pers,cod_enti,fec_venc
2317422,208,12/04/2022
2086638,212,31/03/2022
2392115,210,02/04/2022
2086638,212,13/03/2022
entid.csv
cod_enti,cod_mercado
208,40
209,50
210,16
211,40
212,50
我代码:import csv
import numpy as np
from numpy.lib import recfunctions
from time import strftime
from datetime import datetime, date, time, timedelta
from dateutil.relativedelta import relativedelta
#Read the CSV file
str2date = lambda x: datetime.strptime(x, '%d/%m/%Y')
data_datos = np.genfromtxt(r'data.csv', delimiter=',', dtype=None, names=True, converters={'fec_venc':str2date}, encoding="UTF-8")
data_enti = np.genfromtxt(r'entid.csv', delimiter=',', dtype=None, names=True, encoding="UTF-8")
merged_data = recfunctions.join_by('cod_enti', data_datos, data_enti )
print(merged_data)
结果是:
[(208, 2317422, datetime.datetime(2022, 4, 12, 0, 0), 40)
(210, 2392115, datetime.datetime(2022, 4, 2, 0, 0), 16)
(212, 2086638, datetime.datetime(2022, 3, 13, 0, 0), --)
(212, 2086638, datetime.datetime(2022, 3, 31, 0, 0), 50)]
我的问题是,它不适合我有结果出现在倒数第二行--
时,它应该是50
。有人知道是什么导致了这个问题,我该如何解决它吗?
文档说,引用," r1
和r2
都不应该有任何重复的key
:重复的存在将使输出相当不可靠。注意,重复项不会被算法。"查找。
Pandas有一个更传统的连接特性,如果你想这么做的话。