面试题答案
一键面试代码实现
import pandas as pd
# 读取CSV文件
data = pd.read_csv('your_file.csv')
# 筛选年龄在30到40岁之间的数据行
filtered_data = data[(data['age'] >= 30) & (data['age'] <= 40)]
可能遇到的性能问题
- 内存占用:百万行数据量较大,读取到内存中可能会占用大量内存,导致内存不足。
- 处理速度:对整个数据集进行条件筛选操作,数据量大会使处理时间变长。
优化思路
- 分块读取:使用
chunksize
参数分块读取CSV文件,例如pd.read_csv('your_file.csv', chunksize = 1000)
,在每个分块上进行筛选操作,然后合并结果。 - 数据类型优化:确保
age
列的数据类型为合适的类型(如int
而不是object
),避免不必要的类型转换开销。 - 使用向量化操作:如代码中使用
(data['age'] >= 30) & (data['age'] <= 40)
这种向量化条件筛选,而不是使用循环逐行判断,以提高运算效率。