找出python中特定变量的值

时间:2018-06-14 10:39:57

标签: python-3.x pandas dataframe

假设我有一个包含2列的数据框,第1列包含工作,家庭,睡眠等活动,第2列是每个活动的持续时间。

在迭代行时,我想找出“睡眠”的最后一次活动的持续时间。在我目前的活动期间。

有一种简单的方法吗?

我的数据:

duration = np.random.randint(20, size = 30)
activities = ['work', 'home', 'sleep', 'home','work', 'sleep','work', 'home','sleep', 'home','work', 'sleep','work', 'home','work', 'sleep','work', 'home','work', 'sleep','work', 'home','work', 'sleep','work', 'home','work', 'home', 'work', 'sleep']
activity_df = pd.DataFrame({'activities':activities, 'duration':duration})

2 个答案:

答案 0 :(得分:1)

我认为需要先按boolean indexing进行过滤,然后按name选择最后一个值:

iloc

或按条件使用where创建print (activity_df.loc[activity_df['activities'] == 'sleep', 'duration'].iloc[-1]) ,按NaN使用最后前置替换值:

ffill

答案 1 :(得分:1)

你也可以尝试这个,它有点类似于jezrael的答案。

activity_df[activity_df['activities'] == 'sleep']['duration'].iloc[-1]
相关问题