【问题标题】:Combining multiple csv's by averaging each cell in python通过平均python中的每个单元格来组合多个csv
【发布时间】:2021-01-01 07:16:35
【问题描述】:

我有 7 个 csv 文件,每个文件都包含相同的列数和行数。我正在尝试将这些数据合并到 1 个 csv 中,其中每个单元格是 7 个相同单元格的平均值。 (例如 new-csv(c3) = average(input-csv's(c3)

以下是输入的示例。输出应该看起来相同(6 列 x 15 行),除了每个单元格中的值将被平均。

到目前为止,我有这段代码来加载 csv 文件,并且正在阅读关于将它们制作成矩阵的内容,但我没有看到任何关于合并和平均每个单元格的内容,只有行或列。

listdrs = os.listdir(dir_path)
listdrs_path = [ dir_path + x for x in listdrs]
failed_list = []
csv_matrix = []
for file_path in listdrs_path:
    tickercsv = file_path.replace(string, '')
    ticker = tickercsv.replace('.csv', '')
    data = pd.read_csv(file_path, index_col=0)
    csv_matrix.append(data)

【问题讨论】:

    标签: python pandas dataframe csv matrix


    【解决方案1】:

    如果您在包含所有 csv 文件的目录中运行此命令,则可以使用 glob 查找所有文件,然后使用 pd.read_csv() 和可选参数 header=None 创建一个 dfs 元组,具体取决于您是否有列名。然后你可以连接它们,按索引分组,然后取平均值。

    import pandas as pd
    import glob
    
    files = glob.glob('*.csv')
    dfs = (pd.read_csv(f, headers=None) for f in files)
    pd.concat(dfs).groupby(level=0).mean()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-08
      • 2021-02-03
      • 1970-01-01
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-10
      相关资源
      最近更新 更多