为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

扬帆大鱼 2021-11-16 10:00:16
我有多个 csv 文件,看起来像这样:>>> print(df)    x x.1 x.2 x.3  ... Unnamed: 33 Unnamed: 34 Unnamed: 35 Unnamed: 360   x   x   x   x  ...           x           x           x           x1   x   x   x   x  ...           x           x           x           x2   x   x   x   x  ...         NaN         NaN         NaN         NaN3   x   x   x   x  ...         NaN         NaN         NaN         NaN4   x   x   x   x  ...         NaN         NaN         NaN         NaN5   x   x   x   x  ...         NaN         NaN         NaN         NaN6   x   x   x   x  ...         NaN         NaN         NaN         NaN7   x   x   x   x  ...         NaN         NaN         NaN         NaN8   x   x   x   x  ...         NaN         NaN         NaN         NaN9   x   x   x   x  ...         NaN         NaN         NaN         NaN10  x   x   x   x  ...         NaN         NaN         NaN         NaN11  x   x   x   x  ...         NaN         NaN         NaN         NaN12  x   x   x   x  ...         NaN         NaN         NaN         NaN13  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 以某种方式搜索我想要的数据,这将消除任何错误错误的行?任何帮助表示赞赏,谢谢!
查看完整描述

2 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

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: 36

0   A   A   A   A  ...         NaN         NaN         NaN         NaN

1   B   B   B   B  ...         NaN         NaN         NaN         NaN

2   C   C   C   C  ...         NaN         NaN         NaN         NaN

3   D   D   D   D  ...         NaN         NaN         NaN         NaN

4   E   E   E   E  ...         NaN         NaN         NaN         NaN

5   F   F   F   F  ...         NaN         NaN         NaN         NaN


查看完整回答
反对 回复 2021-11-16
?
茅侃侃

TA贡献1842条经验 获得超21个赞

遵循您的第二个想法“如果数据没有出现在一个文件中的第 14-19 行”:


 #getting the desired rows

df_desired = data.loc[  (data['x'] == 'A') | (data['x'] == 'B')|(data['x'] == 'C') | (data['x'] == 'E')| (data['x'] == 'F')]


 #getting the first 4 columns

df=df.ix[:,[0:4]]


查看完整回答
反对 回复 2021-11-16
  • 2 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信