pandas 数据读取(csv/txt/excel/json)
一、pd.read_csv(txt)
常用参数
这里只介绍一下比较常用的参数,需要更多了解的可以查pandas官方文档
① filepath_or_buffer:需要读取的文件路径,输入路径时可以在可以在路径前加 r 避免转义,路径最好时纯英文
import pandas as pd
df1=pd.read_csv(r'C:/Users/37957/Desktop/demo1.txt')
df1
No | name | age | sex | dep | |
---|---|---|---|---|---|
0 | 1 | wen | 22 | man | a |
1 | 2 | zhou | 25 | woman | b |
2 | 3 | xiao | 23 | man | c |
3 | 4 | chen | 26 | man | d |
② sep:分隔符,默认为’,’
demo2 源数据分隔符为’;'时
No;name;age;sex;dep
1;wen;22;man;a
2;zhou;25;woman;b
3;xiao;23;man;c
4;chen;26;man;d
df2=pd.read_csv(r'C:/Users/37957/Desktop/demo2.txt',sep=';')
df2
No | name | age | sex | dep | |
---|---|---|---|---|---|
0 | 1 | wen | 22 | man | a |
1 | 2 | zhou | 25 | woman | b |
2 | 3 | xiao | 23 | man | c |
3 | 4 | chen | 26 | man | d |
③ header:指定行作为列字段,没有指定‘names’参数时,默认为 header=0,header参数可以是一个list
demo3
No,name,age,sex,dep
序号,姓名,年龄,性别,部门
1,wen,22,man,a
2,zhou,25,woman,b
3,xiao,23,man,c
4,chen,26,man,d
df3=pd.read_csv(r'C:/Users/37957/Desktop/demo3.txt',sep=',',header=[0,1])
df3
No | name | age | sex | dep | |
---|---|---|---|---|---|
序号 | 姓名 | 年龄 | 性别 | 部门 | |
0 | 1 | wen | 22 | man | a |
1 | 2 | zhou | 25 | woman | b |
2 | 3 | xiao | 23 | man | c |
3 | 4 | chen | 26 | man | d |
④ names:设置列名
demo4 源数据没有列字段时:
1,wen,22,man,a
2,zhou,25,woman,b
3,xiao,23,man,c
4,chen,26,man,d
df4=pd.read_csv(r'C:/Users/37957/Desktop/demo4.txt',sep=',',names=['No','name','age','sex','dep'])
df4
No | name | age | sex | dep | |
---|---|---|---|---|---|
0 | 1 | wen | 22 | man | a |
1 | 2 | zhou | 25 | woman | b |
2 | 3 | xiao | 23 | man | c |
3 | 4 | chen | 26 | man | d |
⑤ index_col:设置行索引,默认 None,传参时可分为三种情况
index_col=None 时又会有两种输出情况:1、如果列标题行中的字段数等于数据文件主体中的字段数时,会自动增加一列以0开始的序列(demo5_1)。2、如果列标题行中的字段数比数据文件主体中的字段数少1时,第一列就会设置为索引列(demo5_2);index_col=0 时指定列为索引,可指定多列;index_col=False 关闭索引列推断并丢弃最后一列(如果文件不规则,行尾有分隔符时可用)(demo5_3)
demo5_1
列标题行中的字段数等于数据文件主体中的字段数时:
No,name,age,sex,dep
1,wen,22,man,a
2,zhou,25,woman,b
3,xiao,23,man,c
4,chen,26,man,d
df5_1=pd.read_csv(r'C:/Users/37957/Desktop/demo5_1.txt',sep=',',index_col=None