根据条件计算DataFrame中的值 - 太慢

时间:2016-01-30 09:25:53

标签: python performance python-3.x pandas

鉴于pandas DF看起来像这样:

Http

我正在尝试获取每个键的每个值的计数,即:

   key  value
0    0      A
1    0      A
2    1      A
3    1      B
4    2      C
5    2      B
6    2      B

我正在使用此代码,这证明对我的需求来说太慢了(实际数据大约是20,000个密钥,200个唯一值,每个密钥大约100个值)。为什么它变慢,我该怎么做才能让它更快?

   key      A    B    C
0    0      2    0    0
1    1      1    1    0
2    2      0    2    1

1 个答案:

答案 0 :(得分:2)

您可以尝试crosstabreset_index

df = pd.crosstab(df['key'], df['value']).reset_index()
df.columns.name=None

print df
   key  A  B  C
0    0  2  0  0
1    1  1  1  0
2    2  0  2  1