Это может быть очень быстро, если вы используете numpy для чтения:
import numpy as np
import re
import pandas as pd
fnames = ['data1.txt', 'data2.txt', 'data3.txt']
mean = 0
for fname in fnames:
mean += np.loadtxt(fname, delimiter='|', skiprows=1)[:, 1:]
mean /= len(fnames)
print(mean)
# or if you want access to all of them:
frames = []
for fname in fnames:
frames.append(np.loadtxt(fname, delimiter='|', skiprows=1)[:, 1:])
frames = np.stack(frames)
mean = np.mean(frames, axis=0)
print(frames)
print(mean)
df = pd.read_csv('data1.txt', sep='|', index_col=0)
df.loc[:, df.columns[:]] = mean
print(df)
Затем просто создайте фрейм данных с массивом