用python提取不同的两列数据对比_比较两列数据fram中的值

博客介绍了如何利用pandas的.loc方法进行布尔索引,展示了一种在数据集中快速找出特定条件行的方法。通过比较不同实现的运行时间,强调了在处理大规模数据时效率的重要性。对于较小数据集,推荐使用提升可读性的解决方案。
摘要由CSDN通过智能技术生成

另一种方法是使用pandas.DataFrame的.loc方法,该方法返回符合布尔索引条件的行的索引位置:df.loc[(df['256'] != df['Z'])].index

输出:Int64Index([1, 3], dtype='int64')

这恰好是列出的实现中最快的一个,如ipython notebook:import pandas as pd

import numpy as np

df = pd.DataFrame({"256":np.random.randint(0,10,1594), "Z": np.random.randint(0,10,1594)})

%timeit df.loc[(df['256'] != df['Z'])].index

%timeit row_ids = df[df["256"] != df.Z].index

%timeit rows = list(df[df['256'] != df.Z].index)

%timeit df[df['256'] != df['Z']].index

输出:1000 loops, best of 3: 352 µs per loop

1000 loops, best of 3: 358 µs per loop

1000 loops, best of 3: 611 µs per loop

1000 loops, best of 3: 355 µs per loop

然而,当它降到5-10微秒时,并没有显著的区别,但是如果在未来你有一个非常大的数据集,那么时间和效率可能会成为一个更重要的问题。对于您相对较小的1594行的数据集,我将采用看起来最优雅、提高可读性的解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值