Python Pandas速度

时间:2015-04-26 01:33:13

标签: python pandas

我有一个DataFrame,第一列是客户进入影院,第二列是名称。

time name
1     A
2     A
3     A
4     B
5     B
6     C
7     B
8     C

我希望获得客户参与的平均时间(忽略客户必须离开以便再次进入的事实)。

我正在尝试按数据框分组

df.groupby(['name']).agg({'time' : my_function()})

其中

def my_function():
    for j in range(1,len(time)):
        total = total + time[j] - time[i] 
        i = i  + 1 
    return total / (len(time)-1)

1 个答案:

答案 0 :(得分:1)

我认为你试图在时间上取平均值:

In [11]: g = df.groupby('name')

In [12]: g['time'].apply(lambda x: x.diff().mean())
Out[12]:
name
A    1.0
B    1.5
C    2.0
Name: time, dtype: float64

编辑:我不确定您是想要这个还是仅仅是意思:

In [13]: g['time'].mean()
Out[13]:
name
A    2.000000
B    5.333333
C    7.000000
Name: time, dtype: float64