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