Pandas:使用for循环计算列中特定值的平均值

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

标签: python pandas for-loop mean

我有一个数据集,其连续的行带有'标记'(数字0,1,2,....),表示所有这些行都属于同一个“图片”(例如marker = [0, 0,0,0,1,1,1,2,2,2,2,2,....])。现在我希望我的程序能够给出每个“图片”的平均值,例如,所有数字= 0都属于图片0并计算该标记内整个数据框的平均值。到目前为止,我试过这个:

###Read data in: 
df = pd.read_csv(path_i, sep = ",")

#### Calculate means per picture: 

number = 0

for i in df:
      picture = df.marker[number]
      means = df.mean(picture)
      number = number + 1

我的代码给了我输出:但是每行都是一样的:我认为因为我期待大约96张图片,它给了我整个数据框的平均值。

Unnamed: 0       18547.000000
index            18548.000000
pos_time        341778.900067
pos_x              -95.375306
pos_y              -64.948367
pup_time        341778.900067
pup_diameter         3.116594
marker              48.336649
which_AOI            1.637822
fixation            17.559536
dtype: float64

1 个答案:

答案 0 :(得分:0)

您需要groupby并汇总mean

df1 = df.groupby('marker').mean()

如果需要marker作为输出中的列:

df1 = df.groupby('marker', as_index=False).mean()
df1 = df.groupby('marker').mean().reset_index()