所以我想说我的数据框看起来像这样。
x1 x2 x3 y1 y2 y3 z1 z2 z3
1 10 10.1 9.9 1 2 3 4 5 6
2 11 11.1 10.9 2 3 4 5 6 7
...
我想创建一个名为[xave,yave,zave]
的3列,然后让其中的每个元素成为上面df中三列的平均值(这只是一个例子,我需要在此操作6次6组三列)
x1 x2 x3 y1 y2 y3 z1 z2 z3 xave yave zave
1 10 10.1 9.9 1 2 3 4 5 6 10 2 5
2 11 11.1 10.9 2 3 4 5 6 7 11 3 6
...
现在我通过循环遍历数据框索引并使用df.set_value(index,col,val)
在每个索引值处执行此操作来实现此目的。
for index in df.index:
df.set_value(index = index, col = x1, value = np.average(df.iloc[index,[0:2])
我觉得必须有一种方法可以用df.apply()
或lambda函数来做到这一点。我只需要提高函数的速度,否则分析大量文件需要很长时间。我有另一个脚本循环遍历目录并抓取其中的所有.csv文件。然后它执行我正在进行的分析并将文件名和值保存为数组。目录是~3000个文件,每个数据量可以从200kb到4000kb不等。
我不确定我正在查找如何解决这个问题的确切时间。