pandas 如何在两个CSV文件中找到所有可能的列集合作为主键和外键候选项?

oyt4ldly  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(121)

我有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解决了第一部分的主键问题,如何进一步解决第二部分的找外键问题,然后进行匹配?

djmepvbi

djmepvbi1#

尝试迭代itertools.product()方法生成的所有组合。使用df.isin()检查第一个csv列中的值是否存在于第二个csv文件的相应列中。为了能够匹配它们,使用Pandas库中的merge()函数。

相关问题