添付のようなデータフレームがあり、列の結合をしたいのですがどのようにしたらいでしょうか。
カーゴパンツ黒とカーゴパンツ紺
を
結合して
カーゴパンツ
とまとめてデータフレームを作りなおしたく思っています。
サイズ違いや色違いの同じ商品を人括りで売上管理をしたいという意図です。
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
kokyaku_yoyaku_shouhin
が長いので、df
で説明します。
カーゴパンツ黒とカーゴパンツ紺を結合して
は(実際の列名は「カーゴパンツ・紺」と「カーゴパンツ・黑」なので)、df["カーゴパンツ・紺"] + df["カーゴパンツ・黑"]
でSeriesを作成できます。
これを(末尾ではなく)「カーゴパンツ・紺」の位置に挿入し、「カーゴパンツ・紺」と「カーゴパンツ・黑」を削除するには、以下のようにします。
Python
1df = kokyaku_yoyaku_shouhin 2 3df.insert(df.columns.get_loc("カーゴパンツ・紺"), "カーゴパンツ", df["カーゴパンツ・紺"] + df["カーゴパンツ・黑"]) 4df.drop(columns=["カーゴパンツ・紺", "カーゴパンツ・黑"], inplace=True)
質問者がpd.pivot_table
で作成したデータフレームは、ブラウザーの画面をはみ出すほどの大きさなので、検証用に小さなデータフレームを作ります。実際のデータフレームでは、値が実数になっているので、こちらもそれを模倣します。
Python
1import pandas as pd 2import io 3 4 5txt = """ 6id,わかめ,カーゴパンツ・紺,カーゴパンツ・黑,りんご 71,1.0,0.0,0.0,9.0 82,0.0,2.0,0.0,0.0 93,5.0,0.0,1.0,1.0 104,1.0,1.0,2.0,1.0 11""" 12pd.set_option('display.unicode.east_asian_width', True) 13df = pd.read_csv(io.StringIO(txt), index_col="id") 14print(df) 15 16df.insert(df.columns.get_loc("カーゴパンツ・紺"), "カーゴパンツ", df["カーゴパンツ・紺"] + df["カーゴパンツ・黑"]) 17df.drop(columns=["カーゴパンツ・紺", "カーゴパンツ・黑"], inplace=True) 18print(df)
実行すると、元のデータフレームと加工後のデータフレームが出力されるので、「カーゴパンツ」列が想定通りの値になっているか確認します。
result
1 わかめ カーゴパンツ・紺 カーゴパンツ・黑 りんご 2id 31 1.0 0.0 0.0 9.0 42 0.0 2.0 0.0 0.0 53 5.0 0.0 1.0 1.0 64 1.0 1.0 2.0 1.0 7 わかめ カーゴパンツ りんご 8id 91 1.0 0.0 9.0 102 0.0 2.0 0.0 113 5.0 1.0 1.0 124 1.0 3.0 1.0
投稿2021/09/16 03:23
編集2021/09/16 03:59総合スコア11990
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。