我的脚本出现一些性能问题。我对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)。这是我得到的最小样本,我的数据可能超过十亿行...
非常感谢您的帮助!