前提・実現したいこと
MultiIndexのDataFrameに
df["全体"] - df["男"]の結果を
「女」列として追加したい
全体 | 全体 | 男 | 男 | ||
---|---|---|---|---|---|
グループ | 区分 | 2018 | 2019 | 2018 | 2019 |
あ | A | 100 | 120 | 50 | 60 |
あ | B | 105 | 125 | 51 | 61 |
い | A | 110 | 130 | 52 | 62 |
い | B | 115 | 140 | 53 | 63 |
全体 | 全体 | 全体 | 全体 | 男 | 男 | 女 | 女 |
---|---|---|---|---|---|---|---|
グループ | 区分 | 2018 | 2019 | 2018 | 2019 | 2018 | 2019 |
あ | A | 100 | 120 | 50 | 60 | 50 | 60 |
あ | B | 105 | 125 | 51 | 61 | 54 | 64 |
い | A | 110 | 130 | 52 | 62 | 58 | 68 |
い | B | 115 | 140 | 53 | 63 | 62 | 77 |
該当のソースコード
python
1import io 2import pandas as pd 3 4data = """\ 5グループ,区分,全体,全体,男,男 6グループ,区分,2018,2019,2018,2019 7あ,A,100,120,50,60 8あ,B,105,125,51,61 9い,A,110,130,52,62 10い,B,115,140,53,63 11""" 12df = pd.read_csv(io.StringIO(data), index_col=[0,1], header=[0,1])
試したこと
python
1df1 = df["全体"] - df["男"] 2df1 = df1.T.reset_index() 3 4df1["性別"] = "女" 5df2 = df1.set_index(["性別","グループ"]).T 6 7pd.concat([df, df2], axis=1)
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/18 11:12