【发布时间】:2013-06-30 04:42:23
【问题描述】:
如果我有以下格式的数据(存储在 pandas 数据框中),本质上是分类和商品的标准化形式:
pandas.DataFrame:
categories slug wares
0 [developer, mac, web] alex.payne [macbook-pro, cinema-display, readynas-nv-plus...
1 [mac, musician] jona.bechtolt [audio-kontrol-1, powershot-sd1000, live, mda-...
2 [game, suit, windows] gabe.newell [oa-desk, beyond-tv, windows-xp, office, visua...
3 [developer, mac, software] steven.frank [mac-pro, macbook-air, apple-tv, itunes, addre...
我的意图是绘制与商品相关的类别图表,我需要非规范化格式的数据,以某种格式:
categories wares slug
0 developer macbook-pro alex.payne
1 mac macbook-pro alex.payne
2 web macbook-pro alex.payne
3 developer cinema-display alex.payne
4 mac cinema-display alex.payne
5 web cinema-display alex.payne
6 developer readynas-nv-plus alex.payne
将数据从上面的格式转换为下面的格式的最佳方法是什么,最好是那种也利用 numpy 内部的方法,所以它很快。
我的方法是相当幼稚的,循环遍历数据框中的每一行,维护一个元组列表,然后将其传递给 pandas.DataFrame 构造函数。你的任何建议最终都可能会更快更好,所以建议离开!
我还在考虑在 pandas DataFrame 中对此类数据进行替代表示,特别是稀疏矩阵。但我认为这对于 groupby 查询来说会更好。如果有其他格式,或者稀疏矩阵在此类聚合查询中表现得更好,请建议如何去做。
对于那些感兴趣的人来说,这就是全部内容:http://j.mp/lp-usesthis 我最终没有按照我最初打算的方式进行非规范化,而是仅循环遍历感兴趣的列。但是任何更好地去规范化的能力都会使它变得更好。
【问题讨论】:
-
你能显示你当前的代码吗?
标签: python pandas normalization sparse-matrix