このDataFrameをnumpyのarrayに変換したいのですが、このとき、
- arrayのi行j列目の値をxとしたい
- 欠損している値は0.0としたい
つまり、
array([[90. , 0. , 0. ], [91. , 91.1, 0. ], [92. , 0. , 92.2]])
のような配列がほしく、単純なforループで書くと
# data: 上記DataFrameとする arr = np.zeros((data['i'].max() + 1, data['j'].max() + 1)) for _, row in data.iterrows(): arr[int(row['i']), int(row['j'])] = row['x']
のようになります。
けれど、この方法だと、DataFrameが巨大になったとき、非常に効率が悪いと思うので、これに相当する処理を効率よく書く方法を教えてください。
回答2件
あなたの回答
tips
プレビュー