加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

还在抱怨Pandas运行速度慢?这几个方法会颠覆你的看法

发布时间:2019-01-04 07:02:11 所属栏目:教程 来源:知乎
导读:媒介 当各人谈到数据说明时,说起最多的说话就是Python和SQL。Python之以是得当数据说明,是由于它有许多第三方强盛的库来帮忙,pandas就是个中之一。pandas的文档中是这样描写的: 快速,机动,富有示意力的数据布局,旨在使相关或标志数据的行使既简朴又

凡是,在构建伟大数据模子时,可以利便地对数据举办一些预处理赏罚。譬喻,假如您有10年的分钟频率耗电量数据,纵然你指命名目参数,只需将日期和时刻转换为日期时刻也许必要20分钟。你真的只想做一次,而不是每次运行你的模子,举办测试或说明。

你可以在此处执行的一项很是有效的操纵是预处理赏罚,然后将数据存储在已处理赏罚的表单中,以便在必要时行使。可是,怎样故正确的名目存储数据而无需再次从头处理赏罚?假如你要另存为CSV,则只会丢失datetimes工具,而且在再次会见时必需从头处理赏罚它。

Pandas有一个内置的办理方案,它行使 HDF5,这是一种专门用于存储表格数据阵列的高机能存储名目。 Pandas的 HDFStore 类应承你将DataFrame存储在HDF5文件中,以便可以有用地会见它,同时仍保存列范例和其他元数据。它是一个相同字典的类,因此您可以像读取Python dict工具一样举办读写。

以下是将预处理赏罚电力耗损DataFrame df存储在HDF5文件中的要领:

  1. # 建设储存工具,并存为 processed_data 
  2. data_store = pd.HDFStore('processed_data.h5') 
  3.  
  4. # 将 DataFrame 放进工具中,并配置 key 为 preprocessed_df 
  5. data_store['preprocessed_df'] = df 
  6. data_store.close() 

此刻,你可以封锁计较机并苏息一下。等你返来的时辰,你处理赏罚的数据将在你必要时为你所用,而无需再次加工。以下是怎样从HDF5文件会见数据,并保存数据范例:

  1. # 获取数据储存工具 
  2. data_store = pd.HDFStore('processed_data.h5') 
  3.  
  4. # 通过key获取数据 
  5. preprocessed_df = data_store['preprocessed_df'] 
  6. data_store.close() 

数据存储可以容纳多个表,每个表的名称作为键。

关于在Pandas中行使HDFStore的留意事项:您必要安装PyTables> = 3.0.0,因此在安装Pandas之后,请确保更新PyTables,如下所示:

  1. pip install --upgrade tables 

结论

假如你认为你的Pandas项目不足快速,机动,简朴和直观,请思量从头思量你行使该库的方法。

这里切磋的示例相等简朴,但声名白Pandas成果的正确应用怎样可以或许大大改造运行时和速率的代码可读性。以下是一些履历,可以在下次行使Pandas中的大型数据集时应用这些履历法例:

  • 实行尽也许行使矢量化操纵,而不是在df 中办理for x的题目。假如你的代码是很多for轮回,那么它也许更得当行使本机Python数据布局,由于Pandas会带来许多开销。
  • 假如你有更伟大的操纵,个中矢量化基础不行能或太难以有用地办理,请行使.apply要领。
  • 假如必需轮回遍历数组(确实产生了这种环境),请行使.iterrows()或.itertuples()来进步速率和语法。
  • Pandas有许多可选性,险些总有几种要领可以从A到B。请留意这一点,较量差异要领的执行方法,并选择在项目情形中结果最佳的蹊径。
  • 一旦成立了数据整理剧本,就可以通过行使HDFStore存储中间功效来停止从头处理赏罚。
  • 将NumPy集成到Pandas操纵中凡是可以进步速率并简化语法。

【编辑保举】

  1. Pandas处理赏罚大数据的一些小能力
  2. 数据处理赏罚机能比拟(Python原生vs Pandas vs Numpy)
  3. 用Pandas处理赏罚大数据——节减90%内存耗损的小贴士
  4. 一行代码,Pandas秒变漫衍式,快速处理赏罚TB级数据
  5. 行使Pandas&NumPy举办数据洗濯的6大常用要领
【责任编辑:未丽燕 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读