前提・実現したいこと
pythonでpandasを使って下記データを読み込んでいます。
|日付|名前|点数|カウント
|:--|:--:|--:|
|2021-10-01|A|88|1
|2021-10-01|B|90|1
|2021-10-01|C|81|1
|2021-10-01|D|62|1
|2021-10-01|E|59|1
|2021-10-01|F|91|1
|2021-09-01|A|82|2
|2021-09-01|B|75|2
|2021-09-01|E|98|2
|2021-08-01|B|48|3
|2021-08-01|C|79|2
|2021-07-01|F|66|2
|2021-07-01|D|79|2
|2021-07-01|E|57|3
|2021-06-01|A|77|3
|2021-06-01|B|99|4
|2021-06-01|C|59|3
|2021-06-01|D|71|3
|2021-06-01|E|51|4
このデータを「名前」と「カウント」をキーにして下記のように列を追加したいです。
「日付2」:「カウント」に1を足して、「名前」と「カウントに1足した数字」が合致する行の「日付」。合致したデータなければ0。
「点数2」:「カウント」に1を足して、「名前」と「カウントに1足した数字」が合致する行の「点数」。合致したデータなければ0。
「日付3」:「カウント」に2を足して、「名前」と「カウントに2足した数字」が合致する行の「日付」。合致したデータなければ0。
「点数3」:「カウント」に2を足して、「名前」と「カウントに2足した数字」が合致する行の「点数」。合致したデータなければ0。
「日付4」:「カウント」に3を足して、「名前」と「カウントに3足した数字」が合致する行の「日付」。合致したデータなければ0。
「点数4」:「カウント」に3を足して、「名前」と「カウントに3足した数字」が合致する行の「点数」。合致したデータなければ0。
|日付|名前|点数|カウント|日付2|点数2|日付3|点数3|日付4|点数4
|:--|:--:|--:|
|2021-10-01|A|88|1|2021-09-01|82|2021-06-01|77|0|0
|2021-10-01|B|90|1|2021-09-01|75|2021-08-01|48|2021-06-01|99
|2021-10-01|C|81|1|2021-08-01|79|2021-06-01|59|0|0
|2021-10-01|D|62|1|2021-07-01|79|2021-06-01|71|0|0
|2021-10-01|E|59|1|2021-09-01|98|2021-07-01|57|2021-06-01|75
|2021-10-01|F|91|1|2021-07-01|66|0|0|0|0
|2021-09-01|A|82|2|2021-06-01|77|0|0|0|0
|2021-09-01|B|75|2|2021-08-01|48|2021-06-01|99|0|0
|2021-09-01|E|98|2|2021-07-01|57|2021-06-01|75|0|0
|2021-08-01|B|48|3|2021-06-01|99|0|0|0|0
|2021-08-01|C|79|2|2021-06-01|59|0|0|0|0
|2021-07-01|F|66|2|0|0|0|0|0|0
|2021-07-01|D|79|2|2021-06-01|71|0|0|0|0
|2021-07-01|E|57|3|2021-06-01|51|0|0|0|0
|2021-06-01|A|77|3|0|0|0|0|0|0
|2021-06-01|B|99|4|0|0|0|0|0|0
|2021-06-01|C|59|3|0|0|0|0|0|0
|2021-06-01|D|71|3|0|0|0|0|0|0
|2021-06-01|E|51|4|0|0|0|0|0|0
試したこと
当初はExcelで関数(Index関数、match関数)を使い配列数式で同じようなことをしていたのですが、めちゃくちゃ重くなるので、pythonでできないかと思い立って導入してみたのですが、思うように行かず悩んでいます。
カウント列はExcelの名残なので、必ず必要な列ではありません。
groupbyやlocなどを使えば良いのかな?と漠然と考えているだけで、知識が乏しすぎて何も書けない状況です。
丸投げで質問してしまって大変恐縮ですが、ぜひアドバイスを頂きたいです。よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Windows10
python3.8.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/19 02:10