質問: 以下のようなCSVデータをPythonのネストされた辞書型へ変換したいと思っています。 Python初心者でどのようなコードを書いたら良いかわからず質問させていただきました。 やりたいこととしてはCSVデータのClassをキーとしてグループ化し、色々な条件でデータの抽出を 行いたいと思っています。 【もとのCSVデータ】 | Class | No. | English | Math | Science | Society | | --- | --- | --- | --- | --- | --- | | A | 1 | 63 | 75 | 68 | 82 | | A | 2 | 74 | 72 | 83 | 86 | | B | 2 | 59 | 65 | 71 | 81 | | B | 1 | 63 | 56 | 74 | 81 | | C | 3 | 66 | 72 | 61 | 73 | | C | 1 | 72 | 67 | 58 | 69 | | C | 2 | 74 | 78 | 61 | 66 | | D | 2 | 88 | 91 | 92 | 80 | | D | 1 | 60 | 79 | 68 | 77 | | D | 3 | 79 | 83 | 85 | 90 | --- 【欲しいアウトプット】 ``` data ={ {'A': {'No.':[1,2], 'English':[63,74], 'Math':[75,72], 'Science':[68,83], 'Society':[82,86]}}, {'B': {'NO.':[2,1], 'English':[59,63], 'Math':[65,56], 'Science':[71,74], 'Society':[81,81]}}, {'C': {'No.':[3,1,2], 'English':[66,72,74], 'Math':[72,67,78], 'Science':[61,58,61], 'Society':[73,69,66]}}, {'D': {'No.':[2,1,3], 'English':[88,60,79], 'Math':[91,79,83], 'Science':[92,68,85], 'Society':[80,77,90]}} } ``` 自分なりに調べたところ、itertools.groupbyやdict.setdefaultなど使えばできるようなことが書いてありましたがよく分かりませんでした。 どなたかわかる方いらっしゃれば教えていただけると幸いです。
回答: > > CSVデータのClassをキーとしてグループ化し、色々な条件でデータの抽出 > > > がご要望であれば必ずしも辞書型でなくてもよくDataFrameで でよろしいのではないでしょうか。