如何遍历由对象组成的numpy.ndarray?同时在其上应用各种功能

时间:2018-11-09 14:17:51

标签: python pandas data-analysis

我有一个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

3 个答案:

答案 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]) )