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大小的输入。