通过平均python中的每个单元来组合多个csv

时间:2020-09-14 14:36:11

标签: python pandas dataframe csv matrix

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

这里是输入看起来像的例子。输出应该看起来完全一样(6列x 15行),只是在每个单元格中将对这些值取平均值。

enter image description here

到目前为止,我已经有了这段代码来加载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)

1 个答案:

答案 0 :(得分: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()
相关问题