从非修复标头开始,从csv中读取pandas数据帧

时间:2013-11-26 23:21:29

标签: python parsing csv pandas dataframe

我有一些数据文件是由我实验室中使用的一些相当hackish脚本生成的。该脚本非常有趣,因为它在标题之前附加的行数因文件而异(尽管它们具有相同的格式且具有相同的标题)。

我正在编写一个批处理来处理所有这些文件到数据帧。如果我不知道位置,怎么能让大熊猫识别出正确的标题呢?我知道确切的标题文本,以及直接出现在它之前的两行文本(它们是文档中\r\n的唯一连续实例)。

我试图在文档末尾定义空跳过并选择(谢天谢地)每个文件包含的固定数量的数据行:

df = pd.read_csv(myfile, skipfooter=0, nrows=267)

那不起作用。

您还有其他想法吗?

1 个答案:

答案 0 :(得分:2)

你可以打开文件并迭代它直到满足连续\r\n,并将结果传递给解析器,即

with open(csv_file_name, 'rb') as source:
    consec_empty_lines = 0
    for line in source:
        if line == '\r\n':
            consec_empty_lines += 1
            if consec_empty_lines == 2: 
                break
        else:
            consec_empty_lines = 0
    df = pd.read_csv(source)