将字符串操作应用于Python Dataframe

时间:2017-10-27 16:53:22

标签: python pandas

我目前正在为学校开展一个项目,并且我试图让我的脚本尽可能重复使用。

我正在尝试删除/替换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)

上面的例子要求我指定要传递给函数的列名以删除特殊字符。有没有办法从所有字符串/对象列中删除特殊字符而无需输入列名?

我试过了:

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

我也尝试了以下内容:

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

有任何建议或反馈吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试删除列名称中的所有regex=True

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

如果要替换添加{{1}}

的列值
{{1}}