直接使用f.read()切片字符串以最终在csv中读取为pandas数据帧的直接方法

时间:2018-12-21 12:56:32

标签: python-3.x pandas stringio

我有一个.csv文件,我想打开该文件并将其最终保存为pandas数据框。该文件本身在数据帧上方有一些垃圾文本,其标题以字符串Sample_ID开头。我编写了一个可以分多个步骤完成工作的代码,现在我想知道是否还有一种更优雅的方法。这是我的代码

import pandas as pd
import re
from io import StringIO

with open('SampleSheet.csv') as f:
    ## read in the .csv file as a string
    step1 = f.read()

    ## subset the step1 file
    # define where my df should start
    start = 'Sample_ID'
    step2 = step1[step1.index(start):]

    ## read in step2 as a pandas dataframe with stringio
    step3 = pd.read_csv(StringIO(step2))

我想知道是否有一种方法可以直接使用f.read()进行切片,这样我已经减少了一步。

我还尝试将pd.read_csv()skiprows一起使用,但是我很难分配以Sample_ID开头的行号

1 个答案:

答案 0 :(得分:-1)

您可以仅使用read_csv()来导入和读取文件,如下所示:

df  =   pd.read_csv('SampleSheet.csv', header=3)

其中标头是您要在数据集开始之前在文件顶部跳过的行数。