在 python 中将结果输出为“--” - NumPy

Output results as "--" in python - NumPy

我有 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。有谁知道是什么导致了这个问题,我该如何解决?

非常感谢您的帮助!! :D

文档说,引用,“r1r2 都不应该在 key 中有任何重复项:重复项的存在会使输出非常不可靠。请注意重复项是算法未查找。”。

http://pyopengl.sourceforge.net/pydoc/numpy.lib.recfunctions.html

Pandas 有一个更传统的连接功能,如果你想走那么远的话。