使用python对csv文件进行预处理

python数据清洗:替换csv文件中的特殊符号、查找文件路径

  • 方法一:利用for循环及正则表达式替换
  • 方法二:直接对需要替换的列使用正则表达式替换
  • 方法三:使用replace替换
  • 另外,anaconda中,查找当前目录代码存储位置的路径可使用:

假设存在一列数据,需要将 ‘+’删去或是替换成空
在这里插入图片描述

方法一:利用for循环及正则表达式替换

import pandas as pd
import re
import csv
#使用pd函数将Excel表格p中的数据读取,存储到users中
users=pd.read_excel('./p.xlsx')
#利用for循环按列遍历每一列
for i in (users.columns):
#检验每一列中的“+”将其替换成空
#(由于“+”号在正则表达式中是特殊符号,因此在替换时“+”前需要加一个“\”)
   users[i]=users[i].apply(lambda x:re.sub('\+','',str(x)))
#查看替换是否成功
users

注意:由于+ - * ?这几个都属于正则表达式中的保留字,因此,若需要将它们作为字符中的字符元素进行搜索和替换时,必须使用转义符符号""
即 "\+"表示字符 “+” ; "\
*"表示字符 “*” ; “\-” 表示字符 “-” ; “\?” 表示字符 “?” ;
在这里插入图片描述

方法二:直接对需要替换的列使用正则表达式替换

import pands as pd 
import csv
import re
#将csv文件中的数据读入data中
data = pd.read_csv('./p.csv',encoding='utf-8')
#对“评价”这一列进行替换
data[u'评价'] = data[u'评价'].astype(str)
data[u'评价'] = data[u'评价'].apply(lambda x :re.sub('\+','',str(x)))
#将替换后的的数据存到p.csv文件中
data.to_csv('./p.csv',index=False,encoding='utf-8')
#查看替换后的结果
data 

(结果与方法一同)

方法三:使用replace替换

(若用于数据清洗进行替换不太推荐此方法,因为此读取方法会将数据变成字符串的格式)

import os
import os.path 
import pandas as pd
import csv

csvpath=os.getcwd()+"\\"
f=open('./Perfume.csv',encoding='UTF-8')
content=f.read()
t=content.replace('+','')
print(t)

结果
在这里插入图片描述

另外,anaconda中,查找当前目录代码存储位置的路径可使用:

import os 
print(os.path.abspath('.'))

你可能感兴趣的:(python数据挖掘,python,数据分析)