パンダと共通の操作は、Excelファイルからテーブルを読み込み、すべてのフィールドからセミコロンを削除することです。列は、混合データ型であることが多い。このような何かをするためにトラインとき、私はAtributeErrorに実行します。 for col in cols_to_check: df[col] = df[col].map(lambda x: x.replace(';',''))
データフレーム全体から文字を削除する
AttributeError: 'float' object has no attribute 'replace'
私はUnicode文字、例えばに問題が発生した交換する前にstr()
でそれをラップする場合これは非常に簡単な操作でExcelで for col in cols_to_check: df[col] = df[col].map(lambda x: str(x).replace(';',''))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 3: ordinal not in range(128)
、それが取るすべては空の文字列で;
を交換することです。私はそれをデータフレーム全体で、データ型を無視して同様にパンダでどうやって行うことができますか?または私は何かを逃していますか?
おかげで、これは働いていました!私が見逃していたのは 'regex = True'でした。それがなければ 'replace'は部分的ではなく文字列全体を検索します(excelの全セル内容と同じです) – user3087386
はい、そうです。受付いただきありがとうございます! – jezrael
あなたの答えを少し更新することをお勧めします。私の質問では、データ型を列に混在させていることに言及します(列間だけでなく)。しかし、あなたの例では、一貫したデータ型を使用します。また、文字列で列をチェックするだけですが、 'df = df.replace({';': ''}、正規表現= True)' も同様に働きます。 '['a;'、1.02、 'b']'のように – user3087386