pythonで2つのデータを組み合わせたデータを作成するプログラムを作りたいと考えています。
具体的には、共通の列名を持たない2つのデータフレームdf1,df2があり、実行後のデータフレームをdf2とします。df1のE列はdf2の列名を表しています。
①df2からdf1のA列~C列の要素の組み合わせ(例:df1の0行目の場合、10,5,6)と完全一致する行を見つけます。(例:df2の3行目)
② df1のD列の要素((例:0行目の場合、30)をdf2に追加します。追加する場所の行は①で見つけた行です。列はdf1のE列の要素(例:0行目の場合、0)と同じ列名になります。(例:df2の3行目"0"列)
③df1のD列の要素をすべてdf2に追加できたら処理終了とし、df2をdf2と名付け、csvで出力する。
下記URLで私が実現したいことに近いことをされており、応用できないかと考えてみましたが、①の複数条件の与え方が分からなかったため、今回質問させていたできました。ご教授のほど、よろしくお願いいたします。
https://teratail.com/questions/103286
df1:
|A|B|C|D|E
|:--|:--:|--:|
10|5|6|30|0
100|4|7|40|5
110|4|8|45|10
df2:
|F|G|H|0|5|10
|:--|:--:|--:|
1000|10|20|nan|nan|nan|
1000|15|90|nan|nan|nan|
100|4|7|nan|nan|nan|
10|5|6|nan|nan|nan|
110|4|8|nan|nan|nan|
---------------実行後作成されたデータdf2のイメージ
df1の0行目A~C列の要素がdf2の3行目F~G列と完全一致したとき、df1のE列は0であるため、df2の3行目"0"列にdf1のD列の要素30を追加したdf2が作成される。
df1の1行目も同様にdf2のA~C列に完全一致する行があるため、df1のE列の要素5と同じ列名である"5"列にdf1の1行目D列の要素40が入る。
df2*:
|A|B|C|0|5|10
|:--|:--:|--:|
1000|10|20|nan|nan|nan|
1000|15|90|nan|nan|nan|
100|4|7|nan|40|nan|
10|5|6|30|nan|nan|nan|
110|4|8|nan|nan|45|

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/11/27 12:28