python.csv 按行按列读取

时间:2024-10-23 18:37:08

参考:https://blog.****.net/ly_ysys629/article/details/55107237

    # header=0,表示文件第0行为列索引
# index_col=0,表示文件第0列为行索引
userTable=pd.read_csv('./data/preprefe_%s.csv'%str(i),header=0,index_col=0)

常用参数的读取csv文件

import pandas as pd
obj=pd.read_csv('f:/ceshi.csv')
print obj
print type(obj)
print obj.dtypes
  Unnamed: 0  c1  c2  c3
0 a 0 5 10
1 b 1 6 11
2 c 2 7 12
3 d 3 8 13
4 e 4 9 14
<class 'pandas.core.frame.DataFrame'>
Unnamed: 0 object
c1 int64
c2 int64
c3 int64
dtype: object

ceshi.csv为有列索引没有行索引的数据,read_csv会自动加上行索引,即使原数据集有行索引。 
read_csv读取的数据类型为Dataframe,obj.dtypes可以查看每列的数据类型

obj_2=pd.read_csv('f:/ceshi.csv',header=None,names=range(2,5))
print obj_2
    2   3   4
0 c1 c2 c3
1 0 5 10
2 1 6 11
3 2 7 12
4 3 8 13
5 4 9 14

header=None时,即指明原始文件数据没有列索引,这样read_csv为自动加上列索引,除非你给定列索引的名字。

obj_2=pd.read_csv('f:/ceshi.csv',header=0,names=range(2,5))
print obj_2
   2  3   4
0 0 5 10
1 1 6 11
2 2 7 12
3 3 8 13
4 4 9 14

header=0,表示文件第0行(即第一行,python,索引从0开始)为列索引,这样加names会替换原来的列索引。

obj_2=pd.read_csv('f:/ceshi.csv',index_col=0)
print obj_2
  • 1
  • 2
   c1  c2  c3
a 0 5 10
b 1 6 11
c 2 7 12
d 3 8 13
e 4 9 14
obj_2=pd.read_csv('f:/ceshi.csv',index_col=[0,2])
print obj_2
      c1  c3
c2
a 5 0 10
b 6 1 11
c 7 2 12
d 8 3 13
e 9 4 14

index_col为指定数据中那一列作为Dataframe的行索引,也可以可指定多列,形成层次索引,默认为None,即不指定行索引,这样系统会自动加上行索引(0-)

obj_2=pd.read_csv('f:/ceshi.csv',index_col=0,usecols=[0,1,2,3])
print obj_2
   c1  c2  c3
a 0 5 10
b 1 6 11
c 2 7 12
d 3 8 13
e 4 9 14
obj_2=pd.read_csv('f:/ceshi.csv',index_col=0,usecols=[1,2,3])
print obj_2
    c2  c3
c1
0 5 10
1 6 11
2 7 12
3 8 13
4 9 14

usecols:可以指定原数据集中,所使用的列。在本例中,共有4列,当usecols=[0,1,2,3]时,即选中所有列,之后令第一列为行索引,当usecols=[1,2,3]时,即从第二列开始,之后令原始数据集的第二列为行索引。

obj_2=pd.read_csv('f:/ceshi.csv',index_col=0,nrows=3)
print obj_2
   c1  c2  c3
a 0 5 10
b 1 6 11
c 2 7 12

nrows:可以给出从原始数据集中的所读取的行数,目前只能从第一行开始到nrows行。

相关文章