使用pandas读取csv文件的指定列方法

yipeiwu_com6年前Python基础

根据教程实现了读取csv文件前面的几行数据,一下就想到了是不是可以实现前面几列的数据。经过多番尝试总算试出来了一种方法。

之所以想实现读取前面的几列是因为我手头的一个csv文件恰好有后面几列没有可用数据,但是却一直存在着。原来的数据如下:

GreydeMac-mini:chapter06 greyzhang$ cat data.csv

1,name_01,coment_01,,,,
2,name_02,coment_02,,,,
3,name_03,coment_03,,,,
4,name_04,coment_04,,,,
5,name_05,coment_05,,,,
6,name_06,coment_06,,,,
7,name_07,coment_07,,,,
8,name_08,coment_08,,,,
9,name_09,coment_09,,,,
10,name_10,coment_10,,,,
11,name_11,coment_11,,,,
12,name_12,coment_12,,,,
13,name_13,coment_13,,,,
14,name_14,coment_14,,,,
15,name_15,coment_15,,,,
16,name_16,coment_16,,,,
17,name_17,coment_17,,,,
18,name_18,coment_18,,,,
19,name_19,coment_19,,,,
20,name_20,coment_20,,,,
21,name_21,coment_21,,,,

如果使用pandas读取出全部的数据,打印的时候会出现以下结果:

In [41]: data = pd.read_csv('data.csv')

In [42]: data
Out[42]: 
  1 name_01 coment_01 Unnamed: 3 Unnamed: 4 Unnamed: 5 Unnamed: 6
0 2 name_02 coment_02   NaN   NaN   NaN   NaN
1 3 name_03 coment_03   NaN   NaN   NaN   NaN
2 4 name_04 coment_04   NaN   NaN   NaN   NaN
3 5 name_05 coment_05   NaN   NaN   NaN   NaN
4 6 name_06 coment_06   NaN   NaN   NaN   NaN
5 7 name_07 coment_07   NaN   NaN   NaN   NaN
6 8 name_08 coment_08   NaN   NaN   NaN   NaN
7 9 name_09 coment_09   NaN   NaN   NaN   NaN
8 10 name_10 coment_10   NaN   NaN   NaN   NaN
9 11 name_11 coment_11   NaN   NaN   NaN   NaN
10 12 name_12 coment_12   NaN   NaN   NaN   NaN
11 13 name_13 coment_13   NaN   NaN   NaN   NaN
12 14 name_14 coment_14   NaN   NaN   NaN   NaN
13 15 name_15 coment_15   NaN   NaN   NaN   NaN
14 16 name_16 coment_16   NaN   NaN   NaN   NaN
15 17 name_17 coment_17   NaN   NaN   NaN   NaN
16 18 name_18 coment_18   NaN   NaN   NaN   NaN
17 19 name_19 coment_19   NaN   NaN   NaN   NaN
18 20 name_20 coment_20   NaN   NaN   NaN   NaN
19 21 name_21 coment_21   NaN   NaN   NaN   NaN

所说在学习的过程中这并不会给我带来什么障碍,但是在命令行终端界面呆久了总喜欢稍微清爽一点的风格。使用read_csv的参数usecols能够在一定程度上减少这种混乱感。

In [45]: data = pd.read_csv('data.csv',usecols=[0,1,2,3])

In [46]: data
Out[46]: 
  1 name_01 coment_01 Unnamed: 3
0 2 name_02 coment_02   NaN
1 3 name_03 coment_03   NaN
2 4 name_04 coment_04   NaN
3 5 name_05 coment_05   NaN
4 6 name_06 coment_06   NaN
5 7 name_07 coment_07   NaN
6 8 name_08 coment_08   NaN
7 9 name_09 coment_09   NaN
8 10 name_10 coment_10   NaN
9 11 name_11 coment_11   NaN
10 12 name_12 coment_12   NaN
11 13 name_13 coment_13   NaN
12 14 name_14 coment_14   NaN
13 15 name_15 coment_15   NaN
14 16 name_16 coment_16   NaN
15 17 name_17 coment_17   NaN
16 18 name_18 coment_18   NaN
17 19 name_19 coment_19   NaN
18 20 name_20 coment_20   NaN
19 21 name_21 coment_21   NaN

为了能够看到数据的“边界”,读取的时候显示了第一列无效的数据。正常的使用中,或许我们是想连上面结果中最后一列的信息也去掉的,那只需要在参数重去掉最后一列的列号。

In [47]: data = pd.read_csv('data.csv',usecols=[0,1,2])

In [48]: data
Out[48]: 
  1 name_01 coment_01
0 2 name_02 coment_02
1 3 name_03 coment_03
2 4 name_04 coment_04
3 5 name_05 coment_05
4 6 name_06 coment_06
5 7 name_07 coment_07
6 8 name_08 coment_08
7 9 name_09 coment_09
8 10 name_10 coment_10
9 11 name_11 coment_11
10 12 name_12 coment_12
11 13 name_13 coment_13
12 14 name_14 coment_14
13 15 name_15 coment_15
14 16 name_16 coment_16
15 17 name_17 coment_17
16 18 name_18 coment_18
17 19 name_19 coment_19
18 20 name_20 coment_20
19 21 name_21 coment_21

以上这篇使用pandas读取csv文件的指定列方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python 创建新文件时避免覆盖已有的同名文件的解决方法

思路:创建文件时,先检查是否有同名文件(使用os.path.isfile),如果有,则在文件名后加上编号n来创建。 关键点: 1. 使用os.path.isfile判断文件是否存在 2....

如何基于python实现画不同品种的樱花树

如何基于python实现画不同品种的樱花树

这篇文章主要介绍了如何基于python实现画不同品种的樱花树,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下  动态生成樱花...

Django中ORM外键和表的关系详解

外键 在 MySQL 中,表有两种引擎,一种是 InnoDB ,另外一种是 myisam 。如果使用的是 InnoDB 引擎,是支持外键约束的。外键的存在使得 ORM 框架在处理表关系...

Flask框架单例模式实现方法详解

本文实例讲述了Flask框架单例模式实现方法。分享给大家供大家参考,具体如下: 单例模式: 程序运行时只能生成一个实例,避免对同一资源产生冲突的访问请求。 Django &nb...

详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数

hasattr()函数 hasattr()函数用于判断是否包含对应的属性 语法: hasattr(object,name) 参数: object--对象 name--字符串,属性名 返回...