2017-08-06 590 views
0

我們在一段時間內存儲在實時商店中的n個點(如22點)進行了測量。現在我們正在尋找對上述點趨勢的一些理解。爲了獲得一個目標,我們將讀數讀入一個pandas DataFrame(python)中。在這個DataFrame內點是現在的列和行是相應的測量時間。Pandas DataFrame - 在for循環中添加列與另一種方法

我們希望通過爲每個現有列插入「平均」和「標準」列來擴展數據框的平均值和標準偏差,這是一個特定的測量。這意味着每22個測量點有兩個新的列。

現在的問題是,在迭代現有列的同時是否最好添加新的平均值和標準列,還是在操作或技巧中構建了另一個更有效的DataFrame?

我們的理解是,在for循環中更新DataFrame將是最差的做法。

感謝您的任何意見或建議。

+0

如果每個週期22分,1000個樣品,你說你要22種手段或1000種手段? –

+0

如果你需要22點/列的方法和標準,你爲什麼要列?整個列中的平均值或標準偏差的值不會相同。在這種情況下,您可以創建一個存儲此信息的新數據框。回到你的問題,試着看看數據框的'.apply()'方法。 –

+0

@JohnZwinck - 22意味着22標準,但在所有的行。因此,這意味着每點1000點的手段,這就是爲什麼我們想要用點數加點新的列的原因, –

回答

1

從評論,我想這是你在找什麼 -

import pandas as pd 
import numpy as np 

df = pd.DataFrame(np.random.normal(size = (1000,22))) # created an example dataframe 
df.loc[:, 'means'] = df.mean(axis = 1) 
df.loc[:, 'std'] = df.mean(axis = 1)