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

2024-06-07 11:24:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,上面有信息,我很难把它读入数据框

原始CSV看起来像:

enter image description here

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

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


Tags: 文件csv数据名称信息dfread定义
2条回答

对于那些感兴趣的人来说,这就是我用来解决问题的方法:

from csv import reader

with 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)

可以使用参数nrows指定要读取的行数,也可以使用skiprows跳过^{}中的某些行:

您可以将下面的top-table读入df:

在这里,您可以跳过第一行,其中包含一些不有用的标题,然后读取下10行,其中包含顶级表的数据

df1 = pd.read_excel('test.xls', skiprows = 1,  nrows= 10, usecols = 'A:D')

然后另一个df中的second-table如下所示:

在这里,您可以跳过已经在df1中读取的行,并从文件中读取剩余的数据

df2 = pd.read_excel('test.xls', skiprows = 6)

相关问题 更多 >

    热门问题