当前位置: 首页 > 知识库问答 >
问题:

如何在Python中对每列的唯一值求和?[重复]

昌山
2023-03-14

我正在使用网络日志,数据中包含帐户id和会话id。多个会话可以与一个帐户关联。我想创建一个包含帐户id的新数据框,并计算与该帐户关联的唯一会话数。我的df看起来像这样:

account_id session_id
 1111          de322
 1111          de322
 1111          de322
 1111          de323
 1111          de323
 0210          ge012
 0210          ge013
 0211          ge330
 0213          ge333

我正在使用以下代码:

new_df = df.groupby(['account_id','session_id']).sum()

我得到的输出如下:

 account_id     sessions
 1111           de322
                de323
 0210           ge012 
                ge013 
 0211           ge330
 0213           ge333

我期望的输出

account_id   sessions
 1111           2
 0210           2  
 0211           1
 0213           1

我该怎么修?

共有1个答案

胡天佑
2023-03-14
df = pd.DataFrame({'session': ['de322', 'de322', 'de322', 'de323', 'de323', 'ge012', 'ge012', 'ge013', 'ge333'],
                   'user_id': [1111, 1111, 1111, 1111, 1111, 210, 210, 210, 211],
                   })
print(df)


df = df.drop_duplicates().groupby('user_id').count()
print(df)

输出:

user_id
210     2
211     1
1111    2
 类似资料:
  • 问题内容: 我有一个像这样的元组列表(总是成对出现): 我想找到每对中第一项的总和,即: 如何在Python中执行此操作?目前,我正在遍历列表: 我觉得必须有一种更Python化的方式。 问题答案: 与Python 2.3兼容的版本是 或在最新版本的Python中,请参见此答案。 也会做。

  • 问题内容: 这个问题已经在这里有了答案 : 具有唯一值的排列 (19个答案) 7年前关闭。 我正在寻找列表的唯一排列,x = [“ $ 5”,“ $ 10”,“ $ 10”,“ TAX”,“ $ 5”,“ 20%”,“ BOGO”,“ BOGO”,“ TAX “](9人一组) 我目前正在做的是 但是,这需要很长时间才能运行,我想知道是否有人可以为我提供更有效的解决方案。 问题答案: 这将花费很长时

  • 问题内容: 我想创建一个(或一组)所有出现在python列表中的唯一值的列表。我有这样的事情: 我想要以下内容: 我知道对于字符串列表,您只能使用set(aList),但是我无法弄清楚如何在列表列表中解决此问题,因为set(aList)会向我显示错误消息 我该如何解决? 问题答案:

  • 问题内容: 这是我的数据 是独特的。我需要显示每张卡的所有详细信息和总时间,例如: 问题答案: SELECT卡号,用户名,表名,总和(小时)从表_1 GROUP BY卡号,用户名,表名开​​始

  • 问题内容: 我已经在处理以下代码,但是似乎找不到一种方法来计算字谜列表中唯一值的数量。如果我只是打印出:我会得到列表的总价值,但其中包括重复项。 我试图将列表转换为集合,然后再删除掉重复项,但是还没有任何运气。 谢谢! 问题答案: 使用。仅包含唯一值:

  • 我有一个data.table,我需要生成另一个data.table,它只列出每列的唯一值。一个例子: 从 到 实现这一点最有效的方法是什么?