Python 在csv导入期间跳过行
我正在尝试使用pandas.read_csv()导入.csv文件,但是我不想导入数据文件的第二行(索引为1的行表示0-index) 我看不出如何不导入它,因为命令使用的参数似乎不明确: 从熊猫网站:Python 在csv导入期间跳过行,python,csv,pandas,Python,Csv,Pandas,我正在尝试使用pandas.read_csv()导入.csv文件,但是我不想导入数据文件的第二行(索引为1的行表示0-index) 我看不出如何不导入它,因为命令使用的参数似乎不明确: 从熊猫网站: skiprows:类似列表或整数 此时要跳过的行数(0索引)或要跳过的行数(int) “文件的开头。” 如果我将skiprows=1放在参数中,它如何知道是跳过第一行还是跳过索引为1的行?您可以自己尝试: >>> import pandas as pd >>> f
skiprows
:类似列表或整数
此时要跳过的行数(0索引)或要跳过的行数(int)
“文件的开头。”
如果我将skiprows=1
放在参数中,它如何知道是跳过第一行还是跳过索引为1的行?您可以自己尝试:
>>> import pandas as pd
>>> from StringIO import StringIO
>>> s = """1, 2
... 3, 4
... 5, 6"""
>>> pd.read_csv(StringIO(s), skiprows=[1], header=None)
0 1
0 1 2
1 5 6
>>> pd.read_csv(StringIO(s), skiprows=1, header=None)
0 1
0 3 4
1 5 6
你可以自己试试:
>>> import pandas as pd
>>> from StringIO import StringIO
>>> s = """1, 2
... 3, 4
... 5, 6"""
>>> pd.read_csv(StringIO(s), skiprows=[1], header=None)
0 1
0 1 2
1 5 6
>>> pd.read_csv(StringIO(s), skiprows=1, header=None)
0 1
0 3 4
1 5 6
我还没有什么好评论的,但我想补充一下,以供进一步参考 从: skiprows:文件中要跳过的行的数字集合。也可以是整数以跳过前n行
我还没有什么好评论的,但我想补充一下,以供进一步参考 从: skiprows:文件中要跳过的行的数字集合。也可以是整数以跳过前n行 另外,确保您的文件实际上是一个CSV文件。例如,如果您有一个.xls文件,并且只是将文件扩展名更改为.CSV,则该文件将不会导入,并且会出现上述错误。要检查这是否是您的问题,请在excel中打开该文件,它可能会说: “文件格式和'Filename.csv'的扩展名不匹配。文件可能已损坏或不安全。除非你相信它的来源,否则不要打开它。你还是要打开它吗?” 修复文件:在Excel中打开文件,单击“另存为”,选择要另存为的文件格式(使用.cvs),然后替换现有文件。 这是我的问题,并为我修复了错误。也请确保您的文件实际上是一个CSV文件。例如,如果您有一个.xls文件,并且只是将文件扩展名更改为.CSV,则该文件将不会导入,并将给出上述错误。若要检查这是否是您的问题,请在excel中打开该文件,它可能会出现错误哎: “文件格式和'Filename.csv'的扩展名不匹配。文件可能已损坏或不安全。除非你相信它的来源,否则不要打开它。你还是要打开它吗?” 修复文件:在Excel中打开文件,单击“另存为”,选择要另存为的文件格式(使用.cvs),然后替换现有文件。
这是我的问题,并为我修复了错误。我在读取csv文件时运行skiprows时遇到了相同的问题。 我正在跳过行=1,这不起作用 这个简单的例子给出了如何在读取csv文件时使用skiprows的想法
import pandas as pd
#skiprows=1 will skip first line and try to read from second line
df = pd.read_csv('my_csv_file.csv', skiprows=1) ## pandas as pd
#print the data frame
df
我在读取csv文件时运行skiprows时遇到了同样的问题。 我正在跳过行=1,这不起作用 这个简单的例子给出了如何在读取csv文件时使用skiprows的想法
import pandas as pd
#skiprows=1 will skip first line and try to read from second line
df = pd.read_csv('my_csv_file.csv', skiprows=1) ## pandas as pd
#print the data frame
df
跳过[1]
将跳过第二行,而不是第一行。跳过[1]
将跳过第二行,而不是第一行。所有这些答案都忽略了一个重要点——第n行是文件中的第n行,而不是数据集中的第n行。我有一种情况,我从美国地质勘探局下载了一些过时的测流仪数据。数据集的标题用“#”注释,后面的第一行是标签,接下来是一行,描述日期类型,最后是数据本身。我不知道有多少注释行,但我知道前几行是什么。示例:
-----------------------------警告----------------------------------
您从美国地质调查局数据库获得的一些数据
可能未收到董事的批准…机构光盘站点无日期tz光盘139719\U 00065 139719\U 00065\U光盘
5s 15s 20d 6s 14n 10s美国地质勘探局08041780 2018-05-06 00:00 CDT 1.98 A
如果有一种方法可以自动跳过第n行和第n行,那就太好了
作为说明,我能够通过以下方式解决我的问题:
import pandas as pd
ds = pd.read_csv(fname, comment='#', sep='\t', header=0, parse_dates=True)
ds.drop(0, inplace=True)
所有这些答案都忽略了一个重要点——第n行是文件中的第n行,而不是数据集中的第n行。我有一个情况,我从美国地质勘探局下载了一些过时的水位计数据。数据集的开头用“#”注释,后面的第一行是标签,接下来是描述数据的一行e类型,最后是数据本身。我不知道有多少注释行,但我知道前几行是什么。示例: -----------------------------警告---------------------------------- 您从美国地质调查局数据库获得的一些数据 可能未收到董事的批准…机构光盘站点无日期tz光盘139719\U 00065 139719\U 00065\U光盘 5s 15s 20d 6s 14n 10s美国地质勘探局08041780 2018-05-06 00:00 CDT 1.98 A 如果有一种方法可以自动跳过第n行和第n行,那就太好了 作为说明,我能够通过以下方式解决我的问题:
import pandas as pd
ds = pd.read_csv(fname, comment='#', sep='\t', header=0, parse_dates=True)
ds.drop(0, inplace=True)
我猜它可以是“类似列表或整数”,然后给你两个选项(开始时跳过行或跳过#行),如果你给它列表[1],它只会跳过第1行(第2行)。如果你给它一个整数(例如10)然后它会跳过前10行。这很好。非常感谢。我只是想知道它会如何区分索引和int。[]是答案。我猜它可以是“类似列表或整数”,然后给你两个选项(开始时跳过行或跳过#行),如果你给它列表[1]它只会跳过第1行(第2行)。如果你给它一个整数(例如10),那么它会跳过前10行。这很好。非常感谢。只是想知道它如何区分索引