用于存储数据的
csv
文件有时候数据量是十分庞大的,然而我们有时候并不需要全部的数据,我们需要的可能仅仅是前面的几行。这样就可以通过
pandas
中
read_csv
中指定行数读取的功能实现。
例如有
data.csv
文件,文件的内容如下:
GreydeMac-mini:chapter06 greyzhang$ cat data.csv
,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,,,,
如果我们需要的数据仅仅是前
5
行,那么读取方式可以通过
nrows
的方式进行指定。编写代码如下:
1
#!/usr/bin/python
3
import
pandas
as
pd
5
data = pd.read_csv
(
'data.csv'
,nrows =
5
)
6
print
(data)
代码的运行结果如下:
GreydeMac-mini:chapter06 greyzhang$ python row_test.py
Unnamed: 0 name_01 coment_01 Unnamed: 3 Unnamed: 4 Unnamed: 5 \
0 2 name_02 coment_02 NaN NaN NaN
1 3 name_03 coment_03 NaN NaN NaN
2 4 name_04 coment_04 NaN NaN NaN
3 5 name_05 coment_05 NaN NaN NaN
4 6 name_06 coment_06 NaN NaN NaN
Unnamed: 6
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
GreydeMac-mini:chapter06 greyzhang$
从上面的结果中可以看出,通过指定读取行数实现了预期的功能。
在python里面,
读取
或写入
csv
文件
时,首先要import
csv
这个库,然后利用这个库提供的方法进行对
文件
的读写。
0x01:获取每一行
读取
csv
文件
,用的是
csv
.reader()这个方法。返回结果是一个_
csv
.reader的对象,我们可以对这个对象进行遍历,输出每一行,某一行,或某一列。代码如下:
1 import
csv
2 with open('data.
csv
', ...
lines = []
with codecs.open("./luanxu.txt", 'r', 'gb18030') as infile:
for i in range(25700):
lines.append(infile.readline())
with codecs.open("./cnews.train.txt", 'w','gb18030') as f:
for line in lines:
f.write(line)
读取
文件
的
前
25700行.
import panda as pd
df = pd.read_
csv
(r"C:\Users\Haley\Desktop\Test.
csv
")
pd.set_option("display.max.columns",None)
只
读取
某几列
import panda as pd
df = pd.read_
csv
(r"C:\Users\Haley\Desktop\Test.
csv
", usecols=['COL1','COL2.
loc只能通过index(行)和columns(列)索引名来取,不能用数字索引,一般的loc的行取可用数字索引,但列名不可用数字索引
df.loc[‘one’,‘a’]#one行,a列
df.loc[‘one’:‘two’,‘a’]#one到two行,a列
df.loc[‘one’:‘two’,‘a’:‘c’]#one到two行,a到c列
df.loc[‘one’:‘two’,[‘a’,‘c’]]#one到two行,ac列
import
pandas
as pd
import numpy as np