【问题标题】:How to compare data from multiple csv如何比较来自多个csv的数据
【发布时间】:2020-11-21 14:19:39
【问题描述】:

我有 25 个 csv 文件,每个文件有 4 列,我必须在所有 25 个 CSV 中比较 1 个名为 City 的列,然后在 csv 中写入输出,以了解哪个城市存在于多少具有文件名的文件中。 例如

在 excel 中,我希望 New york 在前 0 列的第一行,然后在下一列中,我想获取纽约市所在的文件名。赞csv_output.csv

New york File 1, File 2, File 3, File 5, File 25
Jakarta  File 1, File 7, File 19.

如何使用 Python、Pandas 或 CSV 或任何其他选项来实现。

目前我最初检查了两个 csv,但这也不起作用。 我的要求是 25 个 CSV 文件。

import pandas as pd
Data1 = pd.read_csv('C:/Users/File1.csv')
Data2  = pd.read_csv('C:/Users/File2.csv', usecols=['City'])
for df in [Data1, Data2]:
    df['City'] = df['City'].str.rstrip()
result = pd.merge(netscan, computer, on='City', how='outer')

result.to_csv('Report.csv', index=False)
print(result)

【问题讨论】:

    标签: python pandas csv data-science


    【解决方案1】:

    这是一种方法。首先,将所有 25 个 CSV 文件收集到一个数据框中:

    import pandas as pd
    dfs = list()
    for file in files:
        df = pd.read_csv(file)
        df['file'] = file
        dfs.append(df)
    dfs = pd.concat(dfs)
    

    接下来,计算汇总统计数据:

    result = dfs.groupby('file')['city'].count()
    

    这里是发布示例的信息:How to make good reproducible pandas examples

    【讨论】:

    • import pandas as pd import glob path = r'C:/Users/' # 使用你的路径 all_files = glob.glob(path + "/*.csv") dfs = list() for file在所有文件中: df = pd.read_csv(file) df['file'] = file dfs.append(df) dfs = pd.concat(dfs) #print (dfs) result = dfs.groupby('City')[' City'].count() print (result) 我进行了上述更改,我得到了名称:City, Length: 947002, dtype: int64 与那个城市 coloum 并在它前面我得到像纽约一样的计数:1 雅加达: 1 但我的要求是获得纽约:文件 1,文件 2 雅加达:文件 19,在新的 CSV 中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    相关资源
    最近更新 更多