熊猫列过滤器慢

时间:2019-12-10 05:53:42

标签: python pandas dataframe

我试图隔离数据框中的名称组,然后计算第二列中的条目数。我的代码有效,因为行数达到500k只是很慢。这是我要完成的示例。

import pandas as pd
import numpy as np

data = [
    ['tom', 0], 
    ['nick', 1], 
    ['juli', 2],
    ['tom', 3], 
    ['nick', 1], 
    ['juli', 2],
    ['tom', 1], 
    ['nick', 0], 
    ['juli', 1],
    ['tom', 3], 
    ['nick', 2], 
    ['juli', 2],
    ['tom', 2], 
    ['nick', 0], 
    ['juli', 0],
    ['tom', 1], 
    ['nick', 1], 
    ['juli', 1]
] 

df = pd.DataFrame(data, columns = ['name', 'moves'])

df

    name  moves
0    tom      0
1   nick      1
2   juli      2
3    tom      3
4   nick      1
5   juli      2
6    tom      1
7   nick      0
8   juli      1
9    tom      3
10  nick      2
11  juli      2
12   tom      2
13  nick      0
14  juli      0
15   tom      1
16  nick      1
17  juli      1

我尝试过的事情:

movement_data=np.zeros((len(df.name.unique()),4))

for u in df.name.unique():
    name_data=df[df.name==u]
    i=0
    movement_data[i][
        name_data.moves.value_counts().index.values
    ]=name_data.moves.value_counts().values
    print(u,movement_data[i,:])
    i=i+1

这将输出:


tom [1. 2. 1. 2.]
nick [2. 3. 1. 2.]
juli [1. 2. 3. 2.]

我在isin函数上看到了几篇文章,但是我不确定如何将其应用于此用例。

0 个答案:

没有答案