为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守候你守候我 2022-10-18 16:14:09
我有一个 csv 文件,该文件在信息之上设置了信息,并且我正在努力将其读入数据框。原始 CSV 看起来像:我希望基本上得到 3 个不同的东西:1)在第一行定义日期和公司名称 2)将汇总表(顶部表)放入数据框中 3)将详细的销售表放入另一个数据框我试过df = pd.read_cs(filepath,error_bad_lines=False)了,它只给了我汇总表,但只有 3 行,因为第一行只有 3 列。关于如何阅读这些文件的任何想法?汇总表的行号不固定(行数不同)。任何帮助将非常感激!谢谢!
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

您可以使用参数指定要读取的行数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)


查看完整回答
反对 回复 2022-10-18
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

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


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)


查看完整回答
反对 回复 2022-10-18
  • 2 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信