我是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"}]
所以基本上是计算每个用户在不同数据项中发生的实例次数。
根据你的样本输入,你可以这样做。
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
如果DF是你的数据集的名字,而 "user "是你想分组的列的名字,那么试试:
count = DF.groupby("user").count()
打印(计数)
我使用了下面的解决方案,将创建一个新的数据框架,其中包含名为 "用户 "和 "NumInstances "的列。
df_counts = df.groupby(['user']).size().reset_index(name='NumInstances')
希望能帮到你。