''' 在无法将大量数据一次读入内存的情况下,使用pandas进行数据运算,发现速度过慢,便查阅资料记录一些关于pandas的性能问题,初识pandas,请多指教 ''' 1.在pandas读取文件(例如csv)时,如果不指定每列的数据数据类型,则pandas则会使用默认的Object类型,这样会导致读取后形成的Dataframe占用内存过大且会拖慢运算效率,所以我们要为每一列选择合适的数据类型,至关重要 df = pandas.read_csv('filename',dtype = {'':int8,16,32,64;float16,32,64;object(不推荐);bool;datetime64;category}
2.关于pandas的循环遍历 推荐使用apply循环函数 frame = df.apply(func,*args = (),**kwargs = {})
3.关于pandas取值问题 推荐使用 at:通过index值获得行数据 iat:通过index位置获得行数据
3.关于数据计算 尽量使用矢量计算,在计算前将源数据进行预处理,例如分组等操作,然后进行矢量操作,这样性能会高很多
暂时只想到这么多,希望有pandas大佬指点下,最近对pandas的速度问题很头痛,提前道谢