我试图隔离数据框中的名称组,然后计算第二列中的条目数。我的代码有效,因为行数达到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函数上看到了几篇文章,但是我不确定如何将其应用于此用例。