簡體   English   中英

如何在兩個 CSV 文件中找到所有可能的列集作為主鍵和外鍵候選者?

[英]How to find all possible column sets as primary key & foreign key candidates in two CSV files?

我有 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 文件中找到所有可能的列集作為主鍵和外鍵候選者?

所需的 output:

  1. CUSTOMER.CUST_NAME (PK), PAYMENT.CUST_NAME (FK)
  2. CUSTOMER.CUST_NUM(PK),PAYMENT.CUST_NUM(FK)
  3. CUSTOMER.CUST_NAME (PK)、CUSTOMER.CUST_NUM (PK)、PAYMENT.CUST_NAME (FK)、PAYMENT.CUST_NUM (FK)

我發現這個答案使用 pandas 和 itertools 來解決主鍵問題的第一部分。 如何進一步解決第二部分查找外鍵然后進行匹配呢?

嘗試遍歷從itertools.product()方法生成的所有組合。 使用df.isin()檢查第一個 csv 列中的值是否存在於第二個 csv 文件的相應列中。為了能夠匹配它們,請使用 Pandas 庫中的merge() function。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM