20210315
https://www.yuque.com/7125messi/wydusr/wweetn
42-(重要重要重要)加速pandas(Modin和pandarallel)
重点
https://zhuanlan.zhihu.com/p/65647604
下面我们对之前使用过的原始的pandas,pandarallel以及modin进行比较(默认使用全部cpu以进行充分的比较)
、
Modin,只需一行代码加速你的Pandas
https://blog.csdn.net/fengdu78/article/details/114684018
20210204
from pandas_streaming.df import StreamingDataFrame
sdf = StreamingDataFrame.read_df(df,chunksize=10)
i=0
for chunk in tqdm(sdf):
tb=dh.get_vector(chunk,gsxl,sxyxl)
tb=dh.convert2vec(tb)
#这里追加索引没有用的 每个块都是重新索引
if i==0:
tb.to_csv('./data/vector_converted_successfully.csv',mode='a',index=False)
i+=1
else:
tb.to_csv('./data/vector_converted_successfully.csv', mode='a', index=False, header=False)
i+=1
table_to_process = table_to_process[['company_a', 'company_b', 's']]
table_to_process['index']=table_to_process.index
table_to_process.to_csv('./data/all_company_data_to_process.csv',index=False)
以这里为准
20210111
for chunk in tqdm(sdf):
tb=dh.get_vector(chunk,gsxl,sxyxl)
tb=dh.convert2vec(tb)
#这里追加索引没有用的 每个块都是重新索引
# tb=pd.DataFrame(tb)
tb.to_csv('./data/vector_converted_successfully.csv',mode='a',index=False,header=False)
pandas 分块处理的时候 每个块是分别索引
tb.to_csv('./data/vector_converted_successfully.csv',mode='a',index=False,header=False)
追加的时候注意把header 置为false
https://www.it1352.com/1686246.html
numpy 追加的方式存储
任何读写的方式都可以查看是否有 分块读取和追加的存储方式
https://www.cnblogs.com/roygood/p/10024472.html
Python中IO编程-StringIO和BytesIO
https://blog.51cto.com/14320361/2486142?source=dra
https://www.imooc.com/article/267887
python–文件流读写 本身 写入方式为a 就是追加的处理方式
Pandas 读取流式文件
https://blog.csdn.net/chuotangbang2061/article/details/101054436
用Pandas 处理大数据的3种超级方法
https://blog.csdn.net/blogtranslator/article/details/90714717
pandas_streaming: streaming API over pandas
https://github.com/sdpython/pandas_streaming
https://blog.csdn.net/weixin_42575020/article/details/96968788
df_orther.to_csv('其他.csv',mode='a', index=False,header=None)
pandas 也可以直接以追加的方式存储
df_=pd.read_csv(r"D:\code12temp\rongxiang\multilabelA\上下游匹配\产业匹配数据已处理好.csv", sep="\t", encoding="utf-8",chunksize=100)
for chunk in df_:
#导出到已存在的h5文件中,这里需要指定key
chunk.to_hdf(path_or_buf='./demo.h5',key='chunk_store',append=True)
#创建于本地demo.h5进行IO连接的store对象
可以处理无限大的数据量
https://blog.csdn.net/kyle1314608/article/details/112391780
重点
利用dask替代pandas进行数据分析
dask相信很多朋友都有听说过,它的思想与上述的分块处理其实很接近,只不过更加简洁,且对系统资源的调度更加智能,从单机到集群,都可以轻松扩展伸缩。
推荐使用conda install dask来安装dask相关组件,安装完成后,我们仅仅需要需要将import pandas as pd替换为import dask.dataframe as dd,其他的pandas主流API使用方式则完全兼容,帮助我们无缝地转换代码:
https://www.cnblogs.com/feffery/p/13906821.html
重点