【前提】
・扱うのは、10万行,237列のデータのデータフレーム
・すべての特殊文字は、少なくとも、"-" or "*"(アスタリスク)が含まれていることがわかっている
下記のコードで、「どのコラムのデータで上記の記号が含まれているのか?」は特定できました。
Python
1col_list = [] 2# See the columns with "-" or "*" character inside of each datapoint 3for col in df.columns: 4 if df[col].dtype == object: 5 if (df[col].str.contains("-")).any() == True: 6 col_list.append(col) 7 elif(df[col].str.contains("*")).any() == True: 8 col_list.append(col) 9 else: 10 continue
しかしその後の、「どんな特殊文字があるのか?」を特定するコードがわからず、今苦戦しています。
一応下記に、なぜこの疑問を解決したいのか?の背景を説明いたします。
【背景】
「最終目標」
データフレームの中に存在するすべての特殊文字を削除したい
「目標達成するためのステップ」
・どんな特殊文字があるのかを特定
・その特殊文字ごとにfor文を作り、「"□"」(シングルスペース)に入れ替える
・スペースを埋める
今回の質問は、上記のステップ1を解決したい、というものです。
めんどくさい質問で恐縮ですが、ご教授のほど、よろしくお願いいたします。
----------------------追加--------------------------------------------
理論上、以下のコードでできると考えましたが、これでは時間がかかりすぎると思いました。
python
1special_character_list = [] 2 3for col in col_list_special: 4 for i in range(len(df[col.index])): 5 if df[col][i].str.contain("-") or df[col][i].str.contain("*"): 6 special_character_list.append(df[col][i]) 7special_character_list = set(special_character_list)
回答4件
あなたの回答
tips
プレビュー