2024-05-08 06:29:56 发布
网友
我很难弄清楚如何跳过csv文件中的n行,但保留第一行的头。
我想做的是迭代,但要保持头从第一行。skiprows使头成为跳过行之后的第一行。做这个最好的方法是什么?
skiprows
data = pd.read_csv('test.csv', sep='|', header=0, skiprows=10, nrows=10)
您可以将行号列表传递给skiprows,而不是整数。
给函数10个整数,就跳过了前10行。
要保留第一行0(作为标题),然后将其他所有内容跳到第10行,可以编写:
pd.read_csv('test.csv', sep='|', skiprows=range(1, 10))
read_csv
控制read_csv行使用的两种主要方法是header或skiprows参数。
header
Supose我们有以下一列CSV文件:
a b c d e f
在下面的每个示例中,这个文件都是f = io.StringIO("\n".join("abcdef"))。
f = io.StringIO("\n".join("abcdef"))
将所有行作为值读取(无标题,默认为整数)
>>> pd.read_csv(f, header=None) 0 0 a 1 b 2 c 3 d 4 e 5 f
使用特定行作为标题(跳过之前的所有行):
>>> pd.read_csv(f, header=3) d 0 e 1 f
使用多行作为标题创建多索引(跳过最后一个指定标题行之前的所有行):
>>> pd.read_csv(f, header=[2, 4]) c e 0 f
跳过文件开头的N行(未跳过的第一行是标题):
>>> pd.read_csv(f, skiprows=3) d 0 e 1 f
通过提供行索引跳过一行或多行(未跳过的第一行是标题):
>>> pd.read_csv(f, skiprows=[2, 4]) a 0 b 1 d 2 f
很好的答案。。我觉得有必要在这里加上广义形式。。考虑这种情况:
假设您的xls/csv在前两行(0,1行)中有垃圾行。第2行(第3行)是真正的标题,您希望从第50行(即第51行)开始加载10行。。以下是片段:
pd.read_csv('test.csv', header=2, skiprows=range(3, 50), nrows=10)
要扩展@AlexRiley的答案,skiprows参数接受一个数字列表,该列表决定要跳过哪些行。所以:
同:
pd.read_csv('test.csv', sep='|', skiprows=[1,2,3,4,5,6,7,8,9])
忽略特定行的最佳方法是创建忽略列表(手动创建,或者使用返回整数列表的range之类的函数)并将其传递给skiprows。
range
您可以将行号列表传递给
skiprows
,而不是整数。给函数10个整数,就跳过了前10行。
要保留第一行0(作为标题),然后将其他所有内容跳到第10行,可以编写:
使用
read_csv
跳过行的其他方法控制
read_csv
行使用的两种主要方法是header
或skiprows
参数。Supose我们有以下一列CSV文件:
在下面的每个示例中,这个文件都是
f = io.StringIO("\n".join("abcdef"))
。将所有行作为值读取(无标题,默认为整数)
使用特定行作为标题(跳过之前的所有行):
使用多行作为标题创建多索引(跳过最后一个指定标题行之前的所有行):
跳过文件开头的N行(未跳过的第一行是标题):
通过提供行索引跳过一行或多行(未跳过的第一行是标题):
很好的答案。。我觉得有必要在这里加上广义形式。。考虑这种情况:
假设您的xls/csv在前两行(0,1行)中有垃圾行。第2行(第3行)是真正的标题,您希望从第50行(即第51行)开始加载10行。。以下是片段:
pd.read_csv('test.csv', header=2, skiprows=range(3, 50), nrows=10)
要扩展@AlexRiley的答案,
skiprows
参数接受一个数字列表,该列表决定要跳过哪些行。所以:同:
忽略特定行的最佳方法是创建忽略列表(手动创建,或者使用返回整数列表的
range
之类的函数)并将其传递给skiprows
。相关问题 更多 >
编程相关推荐