我有一个100000+行的数据框
其中有一个列名“类型”
作为唯一值,例如:
['healer' 'terminator' 'kill-la-kill' 'demonic' 'healer-fpp' 'terminator-fpp' 'kill-la-kill-fpp' 'demonic-fpp']
我要计算的是数据框中每种类型的数量。我现在要计算的行是:
len(df.loc[df['type'] == "healer"])
但是在这种情况下,我必须手动编写它多次,因为该列中有唯一值。
还有其他更简单的方法吗?
我也想使用这些条件来过滤掉其他列
像the 'terminator' killed 78 in the 'kills' and had '0' heals
答案 0 :(得分:2)
使用value_counts吗?
df['type'].value_counts()
答案 1 :(得分:1)
您可以直接使用 [OutputCache(Duration = 300, VaryByParam = "id")]
public ActionResult Index(int? id)
{
return Content(DateTime.Now.ToString());
}
import itertools
counting=0
for state in itertools.product([1,-1],repeat=5):
print(state)
counting+=1
print('the total possible number of states is',counting).
答案 2 :(得分:1)
Numpy很棒,通常已经有一个单层可以满足大多数这样的要求-我想您可能想要的是...
np.unique(yourArray, return_counts=True)
这将返回唯一值的列表,以及每个唯一值出现在数组中的次数。
尝试:
import numpy as np
np.unique(df['type'].values, return_counts=True)
或者,将其汇总为字典,这样您就可以提取以值为键的计数:
count_dict = dict(zip(*np.unique(df['type'].values, return_counts=True)))
count_dict["healer"]
>> 132
然后,您可以将其插入格式字符串,并(假设您制作了一个名为heals_dict
的类似字典)来执行以下操作:
for k in count_dict.keys():
print ( "the {k} killed {kills} in the 'kills' and had {heals} heals".format(k=k, kills=count_dict[k], heals=heals_dict[k]) )