欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pandas 查找数据

程序员文章站 2022-03-04 21:10:04
...

这里选取的数据集为 conceptNet5 的中文数据集

data = pd.read_csv(FILE, delimiter='\t')
data.columns = ['uri', 'relation', 'start', 'end', 'json']

pandas 查找数据

使用布尔运算

使用计时器参见:【python 代码计时】

with Timer() as t:
    data[data['start'].str.contains('zh') & data['end'].str.contains('zh')]
'''
[time spent: 0.57s]
'''
这个速度还比较快了

pandas 查找数据

使用 apply 方法

with Timer() as t:
    data[data.apply(lambda row: 'zh' in row['start'] and 'zh' in row['end'],axis=1)]
'''
[time spent: 9.03s]
'''

apply 是逐行遍历,看来没有做并行优化,

然鹅!上面的代码是有问题的!是可以优化的!

最大的问题就是上面的代码把不相关的列也牵扯了进来,正确的写法应该是:

with Timer() as t:
	data[data['start'].apply(lambda row: row.find('zh')>0) & data['end'].apply(lambda row: row.find('zh')>0)]
'''
[time spent: 0.33s]
'''

速度提升令人震惊!

相关标签: 编程语言