如果我有以下格式的数据(存储在 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我最终没有按照我最初打算的方式进行非规范化,而是只循环感兴趣的列。但是任何更好地去规范化的能力都会使它变得更好。