首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python Pandas read_csv跳过行但保留标题

Python Pandas read_csv跳过行但保留标题
EN

Stack Overflow用户
提问于 2014-12-06 06:24:33
回答 4查看 98.7K关注 0票数 86

我很难弄清楚如何在csv文件中跳过n行,但保留头1行。

我想要做的是迭代,但保留第一行的标题。skiprows使标题位于跳过的行之后的第一行。做这件事的最好方法是什么?

代码语言:javascript
运行
复制
data = pd.read_csv('test.csv', sep='|', header=0, skiprows=10, nrows=10)
EN

回答 4

Stack Overflow用户

发布于 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)

票数 15
EN

Stack Overflow用户

发布于 2018-08-01 05:42:44

为了扩展@AlexRiley的答案,skiprows参数接受一个数字列表,该列表确定要跳过哪些行。所以:

代码语言:javascript
运行
复制
pd.read_csv('test.csv', sep='|', skiprows=range(1, 10))

与以下内容相同:

代码语言:javascript
运行
复制
pd.read_csv('test.csv', sep='|', skiprows=[1,2,3,4,5,6,7,8,9])

忽略特定行的最好方法是创建忽略列表(手动创建,或者使用返回整数列表的range之类的函数)并将其传递给skiprows

票数 3
EN

Stack Overflow用户

发布于 2018-10-16 05:21:59

如果你正在迭代一个很长的csv文件,你可以使用chunksize参数。如果出于某种原因,您需要手动执行单步执行,只要您知道需要执行多少次迭代,就可以尝试执行以下操作:

代码语言:javascript
运行
复制
for i in range(num_iters):
    pd.read_csv('test.csv', sep='|', header=0, 
                 skiprows = range(i*10 + 1, (i+1)*10), nrows=10)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27325652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档