pandas在循环中读取数据帧并得到均值

时间:2015-06-10 10:33:05

标签: python pandas

我有几个具有相同列大小但行大小与df0:

不同的数据帧
lang,h,H
ar,2,2
en,1,2
es,3,4
id,4,2

和df1:

lang,h,H
ar,2,2
en,2,2
es,2,3

这些数据帧是存储在目录中的.csv文件,它们的名称是df + i + '.csv',其中i在范围(10)中。我想阅读所有文件,然后对每列进行分析。到目前为止,我尝试了以下内容,逐一阅读:

df0 = pd.read_csv('df0.csv', index_col='lang')
df1 = pd.read_csv('df1.csv', index_col='lang')

然后结束并采取平均值:

df = pd.concat((df0, df1), axis=1).mean(axis=1)

返回:

ar    2.00
en    1.75
es    3.00
id    3.00
dtype: float64

如何读取循环中目录中存储的所有文件并获取数据框中所有列的平均值?在这种情况下,我想要一个包含h和H列及其平均值的数据框。

编辑: 这是预期的输出数据帧:

lang,mean_h,mean_H
ar,2,2
en,1.50,2
es,2.50,3.50
id,4,2

1 个答案:

答案 0 :(得分:1)

使用glob模块

获取目录中的所有文件
autarkie_eco = {4 => <val a>, 6 => <val b>, 8 => <val c>, etc - set this in your code however}

strombezugsvermeidung_kWh_a_eco = {}
eco_values = [4,6,8,10,12,14,16]
eco_values.each do |eco_value|
  for i in 0..19
    strombezugsvermeidung_kWh_a_eco[eco_value] ||= {}
    strombezugsvermeidung_kWh_a_eco[eco_value][i] = autarkie_eco[eco_value]/100 * jahrstromverbrauch
  end
end

遍历每个文件并添加到元组dfs

strombezugsvermeidung[:kWh][:a][:eco][8][3] => val

最后连接它们并计算平均值

import glob
myFiles = glob.glob('C://my_folder//*.csv')