pandasで元のリスト(cate_list)から1列目のカテゴリ内で3列目が最も大きい行を抽出し,新しいdataframe(cate_after)を作りました。形式はcsvから読み込んだdataframeです。
例cate_list [列]name_kana, cate,count [' アップルパーク', 'ブロック・パズル・ゲーム', '1'], [' アップルパーク', 'ガラガラ・ラトル', '7'], [' アップルパーク', '子供用パジャマ・ルームウェア・スリーパー', '3'], [' アップルパーク', 'ファッション雑貨・小物その他', '1'], [' アップルパーク', 'おもちゃ・知育玩具その他', '12'], [' アップルパーク', 'おもちゃ・知育グッズ', '30'],
これは本来1列(nama_kana)のカテゴリが複数ある中で、3列め(count)中で数が最も多いもののdataframe(cate_after)に変換したものです。
python
1コード 2 3cate_after 4[' アップルパーク', '30'], 5 [' シースリーフィット', '2'], 6 ['100パーセントピュア', '38'], 7 ['10クロスビーデレクラム', '34'], 8 ['1789カーラ', '18'], 9 ['23イヤーズオールド', '7'], 10 ['24カラッツ・サーフ', '386'], 11,,,,,,,
変換コード od = OrderedDict() for index,i in cate_list.iterrows(): od.setdefault(i['name_kana'],[]).append(i['count']) cate=[] for key,value in od.items(): cate.append([key,max(value)])
ここでdataframeのcate_afterに元のdataframeの2列目の'cate'を追加したいのですが、うまく行きません。
つまりcate_afterの1列目と3列目に一致するcate_listの2列目の'cate'を加えたdataframeを作りたいということです。
dataframeに以下のコードでもうまく行きません。
arr=[] for index, v in cate_list.iterrows(): for d,c in cate_after.iterrows(): if v{'name_kana'}==c['name_kana'] and v['count']==c['count']: arr.append(v['name_kana'],v['cate'],v['count'])
このようなあるdataframeともう一つのdataframeの要素の一部が共通している列を抜き出す方法を教えてください
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/13 14:53