跳过csv文件中所需数据上方和下方的行

我有多个 csv 文件,看起来像这样:


>>> print(df)

    x x.1 x.2 x.3  ... Unnamed: 33 Unnamed: 34 Unnamed: 35 Unnamed: 36

0   x   x   x   x  ...           x           x           x           x

1   x   x   x   x  ...           x           x           x           x

2   x   x   x   x  ...         NaN         NaN         NaN         NaN

3   x   x   x   x  ...         NaN         NaN         NaN         NaN

4   x   x   x   x  ...         NaN         NaN         NaN         NaN

5   x   x   x   x  ...         NaN         NaN         NaN         NaN

6   x   x   x   x  ...         NaN         NaN         NaN         NaN

7   x   x   x   x  ...         NaN         NaN         NaN         NaN

8   x   x   x   x  ...         NaN         NaN         NaN         NaN

9   x   x   x   x  ...         NaN         NaN         NaN         NaN

10  x   x   x   x  ...         NaN         NaN         NaN         NaN

11  x   x   x   x  ...         NaN         NaN         NaN         NaN

12  x   x   x   x  ...         NaN         NaN         NaN         NaN

13  x   x   x   x  ...         NaN         NaN         NaN         NaN

[25 rows x 37 columns]

这个 csv 文件中有很多不同类型的数据,但我需要的唯一数据是标记为A-F. 我有大量的这些 csv 文件,所以我想要做的是将它们合并在一起,但只与我想要的数据合并。


我有两种方法,一种比另一种更好。


(1)我想要的数据几乎总是出现在行上,14-19并且有 4 列长。所以每次我在这些 csv 文件之一中阅读时我在想什么我可以跳过上面14和下面的行19但是我不确定如何做到这一点?


像这样的东西data = pd.read_csv(file,skiprows=[0:14])但是我也想跳过 19 之后的任何行?有没有办法,只是负载行14-19只列0-4?


(2)我的第二个想法我不确定是否可能但如果数据没有出现14-19在一个文件的行上,也许我可以让 python 以某种方式搜索我想要的数据,这将消除任何错误错误的行?


任何帮助表示赞赏,谢谢!


扬帆大鱼
浏览 203回答 2
2回答

Qyouu

pandas 有一个额外的参数 ,nrows可用于仅读取指定数量的行>>> import pandas as pd>>> df = pd.read_csv(filename, skiprows=list(range(14)), n_rows=6)>>> df    x x.1 x.2 x.3  ... Unnamed: 33 Unnamed: 34 Unnamed: 35 Unnamed: 360   A   A   A   A  ...         NaN         NaN         NaN         NaN1   B   B   B   B  ...         NaN         NaN         NaN         NaN2   C   C   C   C  ...         NaN         NaN         NaN         NaN3   D   D   D   D  ...         NaN         NaN         NaN         NaN4   E   E   E   E  ...         NaN         NaN         NaN         NaN5   F   F   F   F  ...         NaN         NaN         NaN         NaN

茅侃侃

遵循您的第二个想法“如果数据没有出现在一个文件中的第 14-19 行”: #getting the desired rowsdf_desired = data.loc[  (data['x'] == 'A') | (data['x'] == 'B')|(data['x'] == 'C') | (data['x'] == 'E')| (data['x'] == 'F')] #getting the first 4 columnsdf=df.ix[:,[0:4]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python