找到空白行后将数据加载到df中



当输入文件有时是.csv有时是.xls时,在文件中找到第一个换行符的最佳方法是什么?换行符是保证的,但是在读取文件时,换行符总是在随机行上。输入文件将有一定数量的行,总是在顶部。这个数据有一两行变化。所以我跳过前4 5 6,因为这种不可预测性。这里我的目标是将该点以外的数据读入DataFrame,跳过第一行。在第一个空白行之后的行是我将开始将数据读取到df的地方。跳过可变行数的东西是我缺少的,我有一个识别文件类型的小函数,如果代码返回true,文件是xls文件如果返回false,文件是CSV文件。在下面的示例文件中,第一个空白行位于第7行。

CSV

1:这是永久的,我必须中断执行程序以退出。关键点是,当运行f.r edline()并逐行查看输出时,我注意到文件传递了空行,因为它不是预期的'n'。相反,它总是像',,,,,,,,,,n'一样,在我的许多csv文件中没有一致性。我怎样才能写一些东西来识别这是一个空白行,而不总是调整代码,以说明在CSV文件中的第一个空白行逗号的新数量?

import pandas as pd
file = 'input_file.csv'
f = open(file)
while f.readline() not in ('n'):
pass
final_df = pd.read_csv(f, header=None)

示例file

<表类="年代桌子">报告tbody><随机信息更多信息项目数量111111订单号板Plate1Plate2Plate3 DNA分析id1id2id3Name1C: CG: G td>T: CName2C: CG: G td>Name3C: CG: G td>T: C

我认为处理这个问题最简单的方法,特别是考虑到您可能有csv或xls文件是读取数据并在之后清理它。像这样的东西可能会有所帮助,并且对两种格式都有效:

df = pd.read_excel(file)
new_line = min(df[df.iloc[:,0].isnull()].index)
df.columns = df.iloc[new_line+1]
df = df.iloc[new_line+2:, :]

实际上您读取整个文件,找到第一个空行,并从"new_line"开始重建数据帧。

相关内容

  • 没有找到相关文章

最新更新