前提・実現したいこと
pythonのpandasで特定の文字列を含む行を削除するコードが正常に機能しないです。
発生している問題・エラーメッセージ
以下のtxtファイル(かなり量が多いので...で行を省略しています)
...
1056784,3,1,1,1,2,1,2,1,1,2
1057013,8,4,5,1,2,?,7,3,1,4
1059552,1,1,1,1,2,1,3,1,1,2
...
に対して
Python3
1import numpy as np 2import pandas as pd 3data = np.loadtxt('./breast-cancer-wisconsin.txt', delimiter=',',dtype='str') 4df = pd.DataFrame(data)
を使用してdfにデータを格納後、不正な文字列'?'が存在していることに気づきました。
全部6列目にあったのでこれを消すために
Python3
1df[~df[6].str.contains('?')]
として文字列'?'を消去しようとしたのですが、以下のエラー文が出てきました。
*** re.error: nothing to repeat at position 0
str.contains()の中身を'1'や'2'で試すと上手くいくのですが'?'の時にエラーが出ます。
分かる方がいらっしゃいましたら教えて頂けると嬉しいです。
ちなみに、もう少し細かいdfの中身は以下の通りです。(25行目まで出力、23行6列に該当の?が存在します。)
補足情報(FW/ツールのバージョンなど)
Anaconda
python3.7.3
MacBook (Retina, 12-inch, Early 2016)
回答2件
あなたの回答
tips
プレビュー