Pandas / Numpy帮助矢量化或使用df.apply

时间:2017-10-11 20:57:40

标签: python pandas numpy vectorization

所以我想说我的数据框看起来像这样。

    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不等。

我不确定我正在查找如何解决这个问题的确切时间。

0 个答案:

没有答案