我有2个CSV文件,PAYMENT和CUSTOMER(未规范化,例如,每个真实的文件最多100列):
ID, CUST_NAME, CUST_NUM, CLIENT_NAME, PAYMENT_NUM, START_DATE, END_DATE
1, CUST1, A001, CLIENT1, 10, 2018-04-01, 2018-04-02
2, CUST1, A001, CLIENT1, 10, 2018-04-01, 2018-05-30
3, CUST2, A002, CLIENT1, 101, 2018-04-02, 2018-04-03
4, CUST2, A002, CLIENT1, 102, 2018-04-02, 2018-04-03
ID, CUST_NAME, CUST_NUM, AGE, GENDER, COUNTRY
1, CUST1, A001, 32, M, US
2, CUST2, A002, 34, F, CA
3, CUST3, A003, 45, M, US
4, CUST4, A004, 31, F, CA
如何在两个CSV文件中找到所有可能的列集合作为主键和外键候选项?
预期输出:
1.客户.客户名称(主键),付款.客户名称(FK)
1.客户.客户_编号(主键),付款.客户_编号(FK)
1.客户.客户名称(主键),客户.客户编号(主键),付款.客户名称(FK),付款.客户编号(FK)
我发现this answer用panda和itertools解决了第一部分的主键问题,如何进一步解决第二部分的找外键问题,然后进行匹配?
1条答案
按热度按时间djmepvbi1#
尝试迭代
itertools.product()
方法生成的所有组合。使用df.isin()
检查第一个csv列中的值是否存在于第二个csv文件的相应列中。为了能够匹配它们,使用Pandas库中的merge()
函数。