我很难弄清楚如何在csv文件中跳过n行,但保留头1行。
我想要做的是迭代,但保留第一行的标题。skiprows
使标题位于跳过的行之后的第一行。做这件事的最好方法是什么?
data = pd.read_csv('test.csv', sep='|', header=0, skiprows=10, nrows=10)
发布于 2018-11-02 05:31:03
答案已经很不错了。考虑一下这个通用的场景:
假设您的xls/csv在顶部2行(第0,1行)中有垃圾行。第2行(第3行)是真正的标题,您希望从第50行(即第51行)开始加载10行。
下面是代码片段:
pd.read_csv('test.csv', header=2, skiprows=range(3, 50), nrows=10)
发布于 2018-08-01 05:42:44
为了扩展@AlexRiley的答案,skiprows
参数接受一个数字列表,该列表确定要跳过哪些行。所以:
pd.read_csv('test.csv', sep='|', skiprows=range(1, 10))
与以下内容相同:
pd.read_csv('test.csv', sep='|', skiprows=[1,2,3,4,5,6,7,8,9])
忽略特定行的最好方法是创建忽略列表(手动创建,或者使用返回整数列表的range
之类的函数)并将其传递给skiprows
。
发布于 2018-10-16 05:21:59
如果你正在迭代一个很长的csv文件,你可以使用chunksize参数。如果出于某种原因,您需要手动执行单步执行,只要您知道需要执行多少次迭代,就可以尝试执行以下操作:
for i in range(num_iters):
pd.read_csv('test.csv', sep='|', header=0,
skiprows = range(i*10 + 1, (i+1)*10), nrows=10)
https://stackoverflow.com/questions/27325652
复制相似问题