前提・実現したいこと
Pythonの初心者です。
20行~3000列程度の0~1のみの数値が記載されたCSVファイルをPandasで読み込み、NumpyのInt型の配列に変換して、その後統計的な解析をしたいと考えています。ところが下記の問題が生じています。
発生している問題・エラーメッセージ
abc_df= pd.read_csv("abc.csv",encoding="utf-8")
d = abc_df.values
d
abcが20行~3000列の0あるいは1の数値のみのCSVファイルです。
上記のようにコードを書くと、
array([[1, 1, 1, ..., 1, 1, '1'],
[0, 0, 0, ..., 1, 1, '1'],
[0, 0, 0, ..., 1, 1, '1'],
...,
[1, 1, 1, ..., 1, 1, '1'],
[1, 1, 1, ..., 1, 1, '1'],
[1, 1, 1, ..., 0, 0, '0']], dtype=object)
と、dtype=objectとなってしまい、その後の解析ができていません。
試したこと
配列を400列までに小さくすればdtypeはint64となり、その後の統計解析ができました。
また、行列を入れ替えて読み込んだのち、再度行列を入れ替えれば500列まではInt64までにすることができました。
列の数、あるいは行の数が多くなりすぎるとNumpyではobjectになってしまうのか…
また、objectからintに変換は私がweb上で調べたところではわかりませんでした。
補足情報(FW/ツールのバージョンなど)
環境としては、本日時点で、最新のPythonやNumpy Pandasを用いております。
Python3.8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/05 01:48
2020/04/05 01:48
2020/04/05 01:55 編集
2020/04/05 04:20