Pandas DataFrame,通过组迭代非常慢

时间:2016-09-25 22:05:10

标签: python-3.x pandas group-by iterator

我有一个数据框df,行数约300,000,列数很多:

     | COL_A  |  ... | COL_B  | COL_C  |
-----+--------+-...--+--------+--------+
IDX
-----+--------+-...--+--------+--------+
'AAA'|  'A1'  |  ... |  'B1'  |   0    |
-----+--------+-...--+--------+--------+
'AAB'|  'A1'  |  ... |  'B2'  |   2    |
-----+--------+-...--+--------+--------+
'AAC'|  'A1'  |  ... |  'B3'  |   1    |
-----+--------+-...--+--------+--------+
'AAD'|  'A2'  |  ... |  'B3'  |   0    |
-----+--------+-...--+--------+--------+

我需要在COL_A之后进行分组,并且从每个组的每一行开始,我需要IDX(eG:' AAA')和COL_B(eG)的值:B1)按COL_C

中给出的顺序排列

对于A1我需要:[['AAA','B1'], ['AAC','B3'], ['AAB','B2']]

这就是我的工作。

grouped_by_A = self.df.groupby(COL_A)
for col_A, group in grouped_by_A:
    group = group.sort_values(by=[COL_C], ascending=True)
    ...

它工作正常,但它非常慢(Core i7,16 GB RAM)。当我没有对这些值做任何事情时,已经需要大约5分钟。你知道更快的方式吗?

0 个答案:

没有答案