文章目录
导入包如下:
import pandas as pa
使用read_csv返回一个DataFrame(按照参数的要求会返回指定的类型)
数据内容
filepath_or_buffer为必需值.
根据python语法,第一个参数传参时可以不写参数名
# 本地绝对路径
pa.read_csv("E:/temp/data.csv")
# 本地相对路径
pa.read_csv("temp/data.csv")
# 如果文件与代码文件在同一目录下
pa.read_csv("data.csv")
# 也可以使用URL方式
pa.read_csv("https://www.abc.com/data.csv")
分隔符
sep参数为字符类型,表示每一行的数据内容,缺省时为逗号,常用的是制表符(\t)、空格等,这取决于数据的真实状况。
使用正则作为分隔符时,需要额外配置
engine=python
# 数据分隔符默认是逗号,可以指定为其他符号
# read_table 默认是制表符分隔tab
pd.read_table(data)
# 使用正则表达式
pd.read_csv(data,sep="[u4e00-u9fa5]", engine='python')
# 制表符分隔tab
pd.read_csv(data, sep='\t')
# 制表符分隔tab
pd.read_csv(data, sep='|')
pd.read_csv还提供了
delimiter,当使用此参数时,sep参数失效delimiter效果与sep相同
表头
header参数支持整类型和包含整类型的清单,它指定了表格标题的第几行,并且默认情况下将第一行作为表格标题。
# 第一行
pd.read_csv(data, header=0)
# 没有表头
pd.read_csv(data, header=None)
# 多层索引MultiIndex
pd.read_csv(data, header=[0,1,3])
注:如果skip_blank_lines= True,那么 header参数将会忽略空白和注解,所以 header=0代表第1行的数据,而不是第1行。
列名
names用于为数据行指定名称,该列表顺序与数据一一对应。如果文件中没有列名,那么应该将标题设置为“None”,并且列名列表中不允许有重复值。
pd.read_csv(data, names=['列1', '列2']) # 指定列名列表
pd.read_csv(data, names=['列1', '列2'], header=None)
索引
index_col用来指定索引列,可以是行索引的列编号或者列名,如果给定一个序列,则有多个行索引。Pandas不会自动将第一列作为索引,不指定时会自动使用以0开始的自然索引。
# 支持int、str、int序列、str序列、False,默认为None
pd.read_csv(data, index_col=False) # 不再使用首列作为索引
pd.read_csv(data, index_col=0) # 第几列是索引
pd.read_csv(data, index_col='年份') # 指定列名
pd.read_csv(data, index_col=['a','b']) # 多个索引
pd.read_csv(data, index_col=[0, 3]) # 按列索引指定多个索引
使用部分列
如果只使用数据的部分列,可以用usecols来指定,这样可以加快加载速度并降低内存消耗。
# 支持类似列表的序列和可调用对象
# 读取部分列表
pd.read_csv(data, usecols=[0,4,3]) # 按索引只读取指定列,与顺序无关
pd.read_csv(data, usecols=['列1', '列5']) # 按列名,列名必须存在
# 指定列顺序,其实是df的筛选功能
pd.read_csv(data, usecols=['列1', '列5'])[['列5'


1万+

被折叠的 条评论
为什么被折叠?



