藏猊 2022-02-15 10:44 采纳率: 57.1%
浏览 46
已结题

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

像是这样的一组数据

img


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

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

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

  • 写回答

2条回答 默认 最新

  • heianduck 2022-02-15 11:43
    关注
    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月24日
  • 已采纳回答 2月16日
  • 创建了问题 2月15日