Python、Pandasを使ったデータフレーム結合とその中の数値を使った計算に関する質問です。
下記のような色々な種類の果物と野菜の入ったバスケットをDF_1と仮定しています。
Bascket | Grape | Apple | Orange | Cucumber | Carrot |
---|---|---|---|---|---|
0 | 50 | 50 | 0 | 0 | 100 |
1 | 0 | 20 | 80 | 50 | 50 |
2 | 0 | 70 | 30 | 70 | 30 |
各果物と野菜は下記DF_2のような属性を持っています。
Name | Weight | Price | Suger_content | |
---|---|---|---|---|
0 | Grape | 10 | 500 | 3 |
1 | Apple | 20 | 200 | 5 |
2 | Orange | 15 | 100 | 2 |
3 | Cucumber | 5 | 50 | 1 |
4 | carrot | 13 | 200 | 4 |
この二つのDFを組み合わせて以下のようにバスケットごとの属性を整理したいのですがうまくいきません。
fruitはfruitだけのWeight, Price, Suger contentでまとめてVegetableはVegetableのみでまとめたいです。
表には説明のため計算式を書いていますが、結果が表示されるようにしたいです。
Bascket|Grape|Apple|Orange|Cucumber|carrot|fruit_weight|fruit_price|fruit_Scontent|vege_weight|vege_price|vege_Scontent
|:--:|:--:|:--:|:--:|:--:|:--:
0|50|50|0|0|100|=1050/100+2050/100|=50050/100+20050/100|=350/100+550/100|=13100/100|=200100/100|=4100/100
1|0|20|80|50|50|=2020/100+1580/100|=20020/100+10080/100|=520/100+280/100|=550/100+1350/100|=5050/100+20050/100|=150/100+4*50/100
2|0|70|30|70|30|...|...|...|...|...|...|
該当のソースコード
Python
1for i, _ in df_1.iterrows(): 2 for i2, _ in df_2.iterrows(): 3 if df_2['Name'][i] in df_1.columns: 4 df_1[i].append(df_2[i2])
試したこと
まずはDF_1とDF_2をつなげることからだと思い、上記のコードで結合しようとしたのですがkeyエラーが出てしまいそこから先に進めなくなってしまいました。
PriceやWeightの計算をするまで段階を経て進めていかなければならないことなのにすでに第一段階で躓いてしまい困っています。
ご助言を頂けると幸いです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。