如何解决根据numpy数组中的函数查找计数
我正在尝试查找按唯一ID分组的所有计数,然后申请查看有多少人越过阈值。我想用numpy来做,我可以使用Pandas来做。试图找出Numpy。
import numpy as np
import pandas as pd
events = np.array([[ 3.,1.,441.,780.,30.,262.,0.,-1.],[ 4.,437.,770.,274.,[ 5.,2.,431.,754.,31.,286.,1.]])
df=pd.DataFrame(data=events,columns=["uid","tid","f1","f2","f3","f4","f5","f6","f7","f8"])
我想计算每个f8
列有多少-1
列。我正在使用tid
进行此操作,然后循环每个df.tid.unique()
进行检查。现在我想在Numpy中执行此操作,是否需要使用row
函数来执行此操作?
解决方法
让我们使用pandas.Series.groupby
df.f8.eq(-1).groupby(df.tid).sum()
Out[67]:
tid
1.0 2.0
2.0 0.0
Name: f8,dtype: float64
,
仅使用numpy
即可应用此解决方案:
unique,_ = np.unique(events[:,1],return_counts=True)
result = dict(zip(unique,np.zeros(len(unique))))
for i in range(len(events[:,1])):
if events[i,-1] == -1:
result[events[i,1]] += 1
print(result)
输出:
{1.0: 2.0,2.0: 0.0}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。