pandas 合并数据到一行然后判断

像是这样的一组数据

img


同一天会多次询问,只要有一次运动了吗为是的,就确定为是的,否则为没有。
最后得到下面的数据。

时间   姓名 运动了吗
21A    是的
22A    没有
21B    没有

我想是按照时间和姓名分组,然后判断一下,但是这个判断条件我不会写。
请问要怎么做?

import pandas as pd

data = pd.DataFrame(
    {
        "时间": ["2月1日", "2月1日", "2月1日", "2月2日", "2月1日", "2月1日", "2月1日"],
        "姓名": ["A", "A", "A","A", "B", "B","B"],
        "询问次数":[1,2,3,1,1,2,3],
        "运行了吗": ["没有", "没有", "是的","没有", "没有","没有", "没有"],

    }
)

data1 = pd.DataFrame(data.groupby(["时间",'姓名'])["运行了吗"].apply(list))
def judge(x):
    if "是的" in x:
        return "是的"
    else:
        return "没有"

data1['运行了吗'] = data1['运行了吗'].apply(lambda x: judge(x))
data2 = data1.reset_index()
data2

img

groupby进行分组,再作用一个判断函数就行。

data.groupby(["时间","姓名"])['运动了吗'].apply(lambda x:any(x=="是的"))

结果如下:

img