0

我有一个包含 csv 文件的文件夹,其中包含以下文件:car.csv、person.csv、student.csv....每个文件都有列。

我正在尝试读取列值并将它们放入列表中。

这是我的功能:

import pandas
from itertools import chain, combinations
def key_options(items):
        print(7,items)
        return chain.from_iterable(combinations(items, r) for r in range(1, len(items)+1) )

def primary_key_discovery(data_path):
    csv_files = glob.glob(os.path.join(data_path, "*.csv"))
    for f in csv_files:
        dataframes = pd.read_csv(f)
        for candidate in key_options(list(dataframes)[1:]):
            deduped = dataframes.drop_duplicates(candidate)
            if len(deduped.index) == len(dataframes.index):
                print(f,','.join(candidate))
print(primary_key_discovery('Data1/'))

这个函数给了我这样的输出 Data1\vehicle.csv model,price,engine-size 我想打印列值,例如 model:camery,altima,aclass,....

4

1 回答 1

1

假设您将候选键存储在列表中而不仅仅是打印键,您可以通过展平键列表,选择唯一键,然后从 pandas 数组中选择唯一值来打印唯一值那一栏。

这是如何在python中展平列表的示例

于 2021-11-07T17:49:30.103 回答