猿问

pd.read_csv 问题,两个不同的表在 .csv 中相互重叠

我有一个 csv 文件,该文件在信息之上设置了信息,并且我正在努力将其读入数据框。

原始 CSV 看起来像:

我希望基本上得到 3 个不同的东西:1)在第一行定义日期和公司名称 2)将汇总表(顶部表)放入数据框中 3)将详细的销售表放入另一个数据框

我试过df = pd.read_cs(filepath,error_bad_lines=False)了,它只给了我汇总表,但只有 3 行,因为第一行只有 3 列。关于如何阅读这些文件的任何想法?汇总表的行号不固定(行数不同)。任何帮助将非常感激!谢谢!


守候你守候我
浏览 172回答 2
2回答

梵蒂冈之花

您可以使用参数指定要读取的行数nrows,也可以使用skiprows跳过读取某些行pd.read_excel:您可以将top-table以下内容读入df:在这里,您可以跳过包含一些无用标题的第一行并读取包含顶级表数据的接下来的 10 行。df1 = pd.read_excel('test.xls', skiprows = 1,  nrows= 10, usecols = 'A:D')然后second-table在另一个像这样的df中:在这里,您可以跳过已在 df1 中读取的行,并从文件中读取剩余的数据。df2 = pd.read_excel('test.xls', skiprows = 6)

鸿蒙传说

对于那些感兴趣的人,这是我用来解决问题的方法:from csv import readerwith open('*.csv', 'r') as read_obj:    csv_reader = reader(read_obj)    list1 = []    list2 = []    list3 = []    for row in csv_reader:        if len(row) == 3:            list1.append(row)        if len(row) == 4:            list2.append(row)        if len(row) == 7:            list3.append(row)    df1 = pd.DataFrame(list1)    df2 = pd.DataFrame(list2)    df3 = pd.DataFrame(list3)
随时随地看视频慕课网APP

相关分类

Python
我要回答