pandas批量读取csv文件--按行索引读取

pandas和fit_generator配合使用时,不想将数据全部读入内存,因为实际上也读入不了,数据量太大了。以下是如何按batch_size大小读取:

1、准备数据:

 1 a = pd.DataFrame(a)
 2 a = [
 3     [1, 1, 1, 1],
 4     [2, 2, 2, 2],
 5     [3, 3, 3, 3],
 6     [4, 4, 4, 4],
 7     [5, 5, 5, 5],
 8     [6, 6, 6, 6],
 9 ]
10 a = pd.DataFrame(a)
11 a.to_csv("../a.csv", index=False)

2、读入原始数据:

1 pd.read_csv("../a.csv")
输出:
2 0 1 2 3 3 0 1 1 1 1 4 1 2 2 2 2 5 2 3 3 3 3 6 3 4 4 4 4 7 4 5 5 5 5 8 5 6 6 6 6

3、读取前几行:

1 pd.read_csv("../a.csv", nrows=2)
输出:
2 0 1 2 3 3 0 1 1 1 1 4 1 2 2 2 2

4、跳过某些行,或跳过前多少行:

1 pd.read_csv("../a.csv", skiprows=1, nrows=2)
输出:
2 1 1.1 1.2 1.3 3 0 2 2 2 2 4 1 3 3 3 3 5 pd.read_csv("../a.csv", skiprows=lambda x: x % 2 != 0)
输出:
6 0 1 2 3 7 0 2 2 2 2 8 1 4 4 4 4 9 2 6 6 6 6

  通过skiprows指定跳过多少行,nrows参数取前多少行就可以实现batch_size大小的输入。

posted @ 2019-12-23 15:49  巴蜀秀才  阅读(8237)  评论(0编辑  收藏  举报