次の形式 (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私は、最初に意図した方法で非正規化を行わず、代わりに関心のある列のみをループしました。しかし、より適切に非正規化する能力があれば、それはより良くなります。