2017-10-27 6 views
0

現在、私は学校向けのプロジェクトに取り組んでおり、できる限りスクリプトを再利用できるようにしようとしています。Pythonデータフレームの列に文字列操作を適用する

DataFrame内のすべての文字列/オブジェクト列の特殊文字を削除/置換しようとしています。現在私は、特別な文字を削除し、その列をDataFrameに返す関数に列名を指定することでこれを行っています。

def removeSpecialChar(colName): 
    colName = colName.str.replace(r"[^A-Za-z ]+", ' ') 
    colName = colName.str.strip() 
    return colName 

は、関数を呼び出す:

data.Area_unit_2013_label = removeSpecialChar(data.Area_unit_2013_label) 

上記の例では、特殊文字を削除する関数に渡すために列名を指定するために私を必要とします。列名を入力することなく、すべての文字列/オブジェクト列から特殊文字を削除する方法はありますか?

私が試してみました:

data1 = pd.DataFrame(data.select_dtypes(include=['object'])) 
for columns in data1: 
    columns.replace("-", " ") 

任意の提案やフィードバック:

import pandas as pd 
data = pd.read_csv("File_name.csv") 
data1 = pd.DataFrame(data.select_dtypes(include=['object'])) # here I 
identify the columns currently stored as strings/objects 
data1 = data1.replace("-", " ") # does not work 

は、私も次のことを試してみましたか?

答えて

0

これをすべて削除することができます-の列名です。

df.columns=[x.replace('-','') for x in list(df)] 

あなたはregex=True

df.select_dtypes(include=['object']).replace({'-':''},regex=True) 
+0

を追加する列の値を置き換えたい場合は、返信ありがとうございましたが、残念ながらそれはカラム名だけではなく、すべてのカラム全体に特殊文字を置き換えています。 – notAprogrammer

+0

はすばらしく働いた。助けてくれてありがとう、私はこれを理解しようと時間を費やした。 – notAprogrammer