我正在从事一个数据项目,我正在努力加快我的初始数据处理速度,因为我不可避免地想对数据做一些其他/新的事情。到目前为止,我一直在尝试做更多的矢量化和使用np.where之类的。我看到了物质上的收获
我需要处理的最后一段代码是最慢的。我正在使用itterrows在一个非常大的数据帧中循环(>;百万行)
实际上,我要做的是SQL等价于
select curr.value, prev.value from t1 left join t2 on curr.number = prev.number - 1
据我所知,没有办法像那样连接数据帧本身。是否有其他方法来遍历它以比较当前值和以前的值?以下是数据帧当前的外观
df =
[a b c
3 1 0
4 1 0
5 1 0
6 0 1]
注意,b从1到0,这就是我试图捕捉的,这样我现在就有了一个df,看起来像这样
[a b c b_c
3 1 0 0
4 1 0 0
5 1 0 0
6 0 1 1]
非常感谢您的帮助,谢谢
我想你在找这样的东西。基本上你想知道从b到c再到b的转换
输出:
我不确定这是不是最快的方法,或者它是否比iterrows更快,但我想是的(至少看起来不错)
相关问题 更多 >
编程相关推荐