提高脚本性能(Pandas和DataFrame)

时间:2019-03-21 09:15:17

标签: python pandas performance loops

我的脚本出现一些性能问题。我对padas的向量化机制不是很自信,我知道循环是表演的宿命,但我不知道如何在不使用循环的情况下执行数据处理...

我得到了一个使用.csv填充的数据帧,该数据帧具有以下数据结构:

A |B |C |D
a1|b1|c1|d1
a2|b2|c2|d1
a3|b3|c3|d1
a4|b4|c4|d2
a5|b5|c5|d2
a6|b6|c6|d2
...

我的目标是添加一个新的E列,该列将以具有相同D值的所有行相同的增量填充:

A |B |C |D |E
a1|b1|c1|d1|1
a2|b2|c2|d1|1
a3|b3|c3|d1|1
a4|b4|c4|d2|2
a5|b5|c5|d2|2
a6|b6|c6|d2|2
...

我发现做到这一点的唯一方法是使用循环的以下代码:

DUniqueValue = dataToTreat['D'].unique()

unite = 1

for i in DUniqueValue :
    dataToTreat.loc[dataToTreat['D'] == i,'E'] = unite
    unite += 1

对于具有2280个唯一“ D”值的237k行数据帧,需要13秒(每次迭代5.7ms)。这是我得到的最小样本,我的数据可能超过十亿行...

非常感谢您的帮助!

0 个答案:

没有答案