在pandas中按组别计算数值

问题描述 投票:0回答:1

我是pandas的新手,我希望能够得到每个人的实例数,并将其作为一个colummn反馈到另一个Dataframe中。在我按用户列进行分组之前,我已经从数据框架中删除了NaN值。

我试过了,但似乎没有效果

DF["NumInstances"] = userGrp["user"].value_counts()

我在网上找了一圈,好像没有找到解决办法,请大家帮忙。

编辑:样本数据和预期结果

[{"user" : "4",
"Instance": "21"},
 {"user" : "4",
"Instance": "6"},
{"user" : "5",
"Instance" : "546453"}]

预期成果。

DataFrame =

[{"user":"4",
 "NumInstances" : "2"},
 {"user":"5",
 "NumInstances" : "1"}]

所以基本上是计算每个用户在不同数据项中发生的实例次数。

python pandas dataframe pandas-groupby
1个回答
1
投票

根据你的样本输入,你可以这样做。

In [2535]: df = pd.DataFrame([{"user" : "4", 
      ...: "Instance": "21"}, 
      ...:  {"user" : "4", 
      ...: "Instance": "6"}, 
      ...: {"user" : "5", 
      ...: "Instance" : "546453"}])  

In [2539]: df.groupby('user', as_index=False).count()
Out[2539]: 
  user  Instance
0    4         2
1    5         1

0
投票

如果DF是你的数据集的名字,而 "user "是你想分组的列的名字,那么试试:

count = DF.groupby("user").count()

打印(计数)


0
投票

我使用了下面的解决方案,将创建一个新的数据框架,其中包含名为 "用户 "和 "NumInstances "的列。

df_counts = df.groupby(['user']).size().reset_index(name='NumInstances')

希望能帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.