census_subdivision_profile_merged是一个数据帧,在这里我要单独做很多事情。有没有办法让我一次做完所有的事情?
# Drop missing data
census_subdivision_profile_merged = census_subdivision_profile_merged.dropna()
census_subdivision_profile_merged.columns = [census_subdivision_profile_merged.columns[i]+' '+str(i) for i in range(len(census_subdivision_profile_merged.columns))]
census_subdivision_profile_merged.columns = [census_subdivision_profile_merged.columns[i].replace(" ", "_") for i in range(len(census_subdivision_profile_merged.columns))]
census_subdivision_profile_merged.columns = [census_subdivision_profile_merged.columns[i].replace(",", "_") for i in range(len(census_subdivision_profile_merged.columns))]
census_subdivision_profile_merged.columns = [census_subdivision_profile_merged.columns[i].replace("-", "_") for i in range(len(census_subdivision_profile_merged.columns))]
census_subdivision_profile_merged.columns = [census_subdivision_profile_merged.columns[i].replace("%", "_") for i in range(len(census_subdivision_profile_merged.columns))]
census_subdivision_profile_merged.columns = [census_subdivision_profile_merged.columns[i].replace("$", "_") for i in range(len(census_subdivision_profile_merged.columns))]发布于 2017-07-02 04:46:05
您使用字符串执行了5次replace方法,但也可以使用如下所示的正则表达式:
import re
#Test data frame
df=pd.DataFrame({"data1":["E %,-$p,e","E $m$$-%ple"],"data2":["E %,-$p,e","E $m$$-%ple"]})
#Remove all special characters and whitespaces for each row, for each word
for j in df.columns:
for strs in range(len(df[j])):
df.loc[strs,j]=re.sub(r'[-%,$\s]',"_",df.loc[strs,j])
print(df)对于您的示例,像这样的smth应该可以工作:
for j in census_subdivision_profile_merged.columns:
for strs in range(len(census_subdivision_profile_merged[j])):
census_subdivision_profile_merged.loc[strs, j] = re.sub(r'[-%,$\s]', "_", census_subdivision_profile_merged.loc[strs, j])或者,您可以尝试这样做,这样可以从完整的DataFrame中删除所有特殊字符和空格。
census_subdivision_profile_merged = census_subdivision_profile_merged.replace(r"[-%,$\s]","_",regex=True)https://stackoverflow.com/questions/44864656
复制相似问题