2017-04-01 56 views
0

我是新来的学习大熊猫,今天过这个问题跑了:基于在大熊猫键组合x行

我建立一个简单的DF收集卫生统计,每一行代表每个数据的第一天用户。我想在数据框中看到每个用户的体重减轻情况。

这里是我的数据框的一个样本:

_id  _rev body_mass calories date name sleep steps team token ua_id 
xxxx yyyy 60   3100 4/1/2017 user1 7  2800 t2  xxxx 123423 
xxxx yyyy 58   3300 4/1/2017 user2 6  2900 t1  xxxx 123439 
xxxx yyyy 45   3300 4/2/2017 user2 6  3300 t1  xxxx 123439 

我想DF与该信息创建一个新的:通过排序通过用户名和日期数据框

weight loss  name 
0    user1 
13   user2 
+1

但是所有的日期都是平等的。我们如何知道* firsst *测量是什么? –

+0

对不起,我忘了修改第三排,第三排将是2017年4月2日 – ssabour

回答

0

开始,因此对于每个用户,第一行是指最早的测量:

df_sorted = df.sort_values(['name','date']) 

然后将组该行通过用户名和获得第一(最早)和最后(最近)测量:

start = df_sorted.groupby('name').first()['body_mass'] 
end = df_sorted.groupby('name').last()['body_mass'] 

现在,得到的区别:

end - start 

这就是你的结果。

#name 
#user1  0 
#user2 -13 
#Name: body_mass, dtype: int64 
+0

非常感谢!我计算出大熊猫日复一日是多么强大:)。 – ssabour