1.读取文件
Pandas读取这两种文件的方法大体一致,语法如下:
pd.read_csv(path)
pd.read_excel(path)
其中path为文件路径,可使用 os 模块中的 getcwd 和 chdir 方法查看和修改路径,若读取的文件在当前路径下,则 path 可直接输入文件名
os.getcwd() #获取当前路径
os.chdir(path) #修改当前路径
pd.read_csv('xxxx.csv')
pd.read_excel('xxxx.xlsx')
2.指定位置读取文件
若想要读取的文件在当前路径下的一个文件夹内时,则只需要在文件名前添加文件夹名称即可
当前路径:C:\\Users\\Desktop,文件在Desktop的test文件夹内
pd.read_csv('test\\xx.csv')
3.指定行读取文件(顺序、跳过、条件)
这里介绍 pd.read_csv 的三种方法实现顺序、跳过和条件读取
# 顺序
pd.read_csv('xx.csv',nrows = 10) #读取前10行
# 跳过
pd.read_csv('xx.csv',skiprows = [1,2,3]) #跳过1、2、3行,也可使用range或者列表表达式
# 条件
pd.read_csv('xx.csv',skiprows = lambda x : x % 2) #使用函数实现条件读取奇数行,这里会将每一行当成参数传入匿名函数,当为奇数行时,结果为True(保留)
4.指定列读取文件(列号、列名、条件)
# 列号
pd.read_csv('xx.csv',usecols = [0,2,4]) #读取该文件的第1、3、5列
# 列名
pd.read_csv('xx.csv',usecols = ['A']) #读取该文件的A列
# 条件
list_1 = ['A','B','C']
pd.read_csv('xx.csv',usecols = lambda x : x in list_1) #同样使用函数进行条件读取,这里会对每一列生成一个布尔判断的结果,从而达到条件读取的结果
5.指定索引读取文件
pd.read_csv('xx.csv',index_col = ['A']) #设置A列为索引列
6.指定标题读取文件并修改标题
pd.read_csv('xx.csv',usecols = ['A'],names = ['B']) #指定读取A列,并将列名修改为B
7.缺失值转换、标记以及忽略缺失值
缺失值分为标准缺失值和非标准缺失值,标准缺失值指的是 Pandas 能够自动识别的,反之则反。
其中空格以及NA均能够被识别,然而 “-”、“na”、“n/a”等等均不能被识别。
在处理缺失值的过程中,一般会遇到以下集中情况:
(一)不对缺失值进行处理,源文件中出现的什么值,DataFrame中就是什么值
pd.read_csv('xx.csv',keep_default_na = False) #keep_default_na 默认为True,即转换为NAN
还可使用 na_filter=False 进行忽略缺失值
(二)将特定字符标记为缺失值(当遇到不能被识别的字符时)
pd.read_csv('xx.csv',na_values = ['[]']) #将[]标记为缺失值
na_values参数用来控制哪些值会被判定为缺失值,它接收一个列表或者集合,当列表或者几个中出现的字符串在文件中出现时,它也会被判定为缺失值。
这个参数用来处理非标准缺失值。
但是,无论此时keep_default_na=True还是False,他都将被改写。
8.指定格式读取文件
在读取某个文件时,修改某列的数据类型(格式)
pd.read_csv('xx.csv',dtype = {'xx':str,'xxx':int}) #通过传入一个字典设置不同列的格式
9.分块读取文件
当数据量过大时,直接使用 pd.read_csv 读取会造成效率过低,使用 chunksize 方法进行分块处理,然后对每一块进行遍历,最后合并输出文件
pd.read_csv('xx.csv',chunksize=100) #每一块有100行