首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在.csv中具有两个不同表的pd.read_csv问题

在.csv中具有两个不同表的pd.read_csv问题
EN

Stack Overflow用户
提问于 2020-04-22 11:43:41
回答 2查看 45关注 0票数 0

我有一个csv文件,它是在信息之上设置的信息,我正在努力将其读取到数据帧中。

原始CSV如下所示:

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-26 08:08:36

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)
票数 1
EN

Stack Overflow用户

发布于 2020-04-22 11:53:39

您可以使用参数nrows指定要读取的行数,也可以使用skiprows跳过读取pd.read_excel中的某些行

您可以将如下所示的top-table读入到df中:

在这里,您可以跳过包含一些无用标题的第一行,然后读取包含top-table数据的下10行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df1 = pd.read_excel('test.xls', skiprows = 1,  nrows= 10, usecols = 'A:D')

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df2 = pd.read_excel('test.xls', skiprows = 6)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61364304

复制
相关文章
是时候和pd.read_csv(), pd.to_csv()说再见了
大数据文摘授权转载自数据派THU 作者:Avi Chawla 翻译:欧阳锦 校对:和中华 Pandas 对 CSV 的输入输出操作是串行化的,这使得它们非常低效且耗时。我在这里看到足够的并行优化空间,但遗憾的是,Pandas 还没有提供这个功能。尽管我从不赞成一开始就使用 Pandas 创建 CSV(请阅读https://towardsdatascience.com/why-i-stopped-dumping-dataframes-to-a-csv-and-why-you-should-too-c0954
大数据文摘
2023/04/10
1.1K0
是时候和pd.read_csv(), pd.to_csv()说再见了
独家 | 是时候和pd.read_csv(), pd.to_csv()说再见了
Pandas 对 CSV 的输入输出操作是串行化的,这使得它们非常低效且耗时。我在这里看到足够的并行优化空间,但遗憾的是,Pandas 还没有提供这个功能。尽管我从不赞成一开始就使用 Pandas 创建 CSV(请阅读https://towardsdatascience.com/why-i-stopped-dumping-dataframes-to-a-csv-and-why-you-should-too-c0954c410f8f了解原因),但我知道在某些情况下,除了使用 CSV 之外别无选择。
数据派THU
2022/12/16
1.5K0
独家 | 是时候和pd.read_csv(), pd.to_csv()说再见了
在Python中处理CSV文件的常见问题
当谈到数据处理和分析时,CSV(Comma-Separated Values)文件是一种非常常见的数据格式。它简单易懂,可以被绝大多数编程语言和工具轻松处理。在Python中,我们可以使用各种库和技巧来处理CSV文件,让我们一起来了解一些常见问题和技巧吧!
华科云商小孙
2023/09/25
4290
ABAP 取两个内表的交集 比较两个内表的不同
SAP自带的函数: CTVB_COMPARE_TABLES和BKK_COMPARE_TABLES; 似乎可以比较两个内表,得出第二个内表不同于第一个内表的部分(新增/删除了那些部分) 但是,具体的使用,还请有经验的朋友不吝赐教啊! 因为,我在测试数据时,发现这两个函数的效果不那么简单。 如果上述函数确实可以,提取两个内表不同部分,则我可以据此做两次比较,得到两个内表的交集。 所以,我先用另外一种方式解决了-自己写了一个提取两个内表交集的函数,供大家检阅: *" IMPORTING *" VALUE(ITAB1) TYPE INDEX TABLE *" VALUE(ITAB2) TYPE INDEX TABLE *" EXPORTING *" VALUE(ITABSAME) TYPE INDEX TABLE *"---------------------------------------------------------------------- field-symbols: <S1>, <S2>. data: L1 type i, L2 type i. assign local copy of initial line of: ITAB1 to <S1>, ITAB2 to <S2>. describe: table ITAB1 lines L1, table ITAB2 lines L2. "对记录行数少的内表,执行第一层循环; "在第二层循环中,找到对应记录,即可追加到结果内表; "同时退出第二层循环,继续执行第一层循环的下一行 IF L1 <= L2. LOOP AT ITAB1 INTO <S1>. LOOP AT ITAB2 INTO <S2>. IF <S1> EQ <S2>. APPEND <S1> TO ITABSAME. EXIT. ENDIF. ENDLOOP. ENDLOOP. ELSE. LOOP AT ITAB2 INTO <S2>. LOOP AT ITAB1 INTO <S1>. IF <S1> EQ <S2>. APPEND <S2> TO ITABSAME. EXIT. ENDIF. ENDLOOP. ENDLOOP. ENDIF. ENDFUNCTION. 另一个问题,想请教大家,在上面代码里,第二层循环是为了找出,第一层循环的当前记录,在第二个内表里是否存在;
matinal
2020/11/26
3.1K0
java中==、equals的不同AND在js中==、===的不同
       1.==操作符:首先,对于非基本数据类型的对象比较,相同内存中存储的变量的值是否相等,注意是相同内存地址的才可,并且数值相同(当然地址相同,值也一定相同)才会返回true.     但是,对于基本数据类型的比较(比如:int flot double等),值相同,"=="比较便会返回true.(这是编译的规则,当进行基本数据类型的比较时,会编译生成if_icmpne指令不会进行比较地址。而进行对象比较时,会生成if_icmpne指令,会比较地址。生成的指令都是不同的)。
洋仔聊编程
2019/01/15
4K0
Hive创建外部表CSV数据中列含有逗号问题处理
在不能修改示例数据的结构情况下,这里需要使用Hive提供的Serde,在Hive1.1版本中提供了多种Serde,此处的数据通过属于CSV格式,所以这里使用默认的org.apache.hadoop.hive.serde2.OpenCSVSerde类进行处理。经过修改后的建表语句如下:
Fayson
2018/11/16
7.5K0
Excel公式技巧94:在不同的工作表中查找数据
很多时候,我们都需要从工作簿中的各工作表中提取数据信息。如果你在给工作表命名时遵循一定的规则,那么可以将VLOOKUP函数与INDIRECT函数结合使用,以从不同的工作表中提取数据。这项技术可以节省时间,提高效率。
fanjy
2021/07/12
13.1K0
策略模式:处理不同策略具有不同参数的情况
策略模式确实在处理不同策略需要不同参数的情况下会显得有些复杂。然而,这并不意味着策略模式不能在这种情况下使用。有几种可能的解决方案:
运维开发王义杰
2023/08/16
6750
策略模式:处理不同策略具有不同参数的情况
盘点CSV文件在Excel中打开后乱码问题的两种处理方法
大家好,我是Python进阶者。前几天给大家分享了一些乱码问题的文章,阅读量还不错,感兴趣的小伙伴可以前往:盘点3种Python网络爬虫过程中的中文乱码的处理方法,UnicodeEncodeError: 'gbk' codec can't encode character解决方法,今天基于粉丝提问,给大家介绍CSV文件在Excel中打开后乱码问题的两种处理方法,希望对大家的学习有所帮助。
Python进阶者
2021/11/04
3.4K0
使用CSV模块和Pandas在Python中读取和写入CSV文件
CSV文件是一种纯文本文件,其使用特定的结构来排列表格数据。CSV是一种紧凑,简单且通用的数据交换通用格式。许多在线服务允许其用户将网站中的表格数据导出到CSV文件中。CSV文件将在Excel中打开,几乎所有数据库都具有允许从CSV文件导入的工具。标准格式由行和列数据定义。此外,每行以换行符终止,以开始下一行。同样在行内,每列用逗号分隔。
用户7466307
2020/06/16
20.2K0
为啥同样的逻辑在不同前端框架中效果不同
前端框架中经常有「将多个自变量变化触发的更新合并为一次执行」的批处理场景,框架的类型不同,批处理的时机也不同。
公众号@魔术师卡颂
2021/11/17
1.5K0
【说站】python读取csv的不同形式
python读取csv的不同形 1、以列表的形式读取csv数据 编写一个读取 csv 文件的程序: import csv   csvfile = open('./data.csv', 'r') reader = csv.reader(csvfile)   for row in reader:     print(row) import csv将导入Python自带的csv模块。 2、以字典的形式读取csv数据 import csv   csvfile = open('./data.csv', 'r')
很酷的站长
2022/11/23
5020
【说站】python读取csv的不同形式
linux环境中,两个不同网段的机器互通
host2 双网卡 eth0 172.24.100.14/16   eth1 192.168.122.214/24
用户1685462
2021/07/27
2.9K0
在python中使用csv读写CSV 原
1.一般读写方式 # 读取csv文件 import csv with open('some.csv', 'rb') as f: # 采用b的方式处理可以省去很多问题 reader = csv.reader(f) for row in reader: # do something with row, such as row[0],row[1] import csv with open('some.csv', 'wb') as f: # 采用b的方式
晓歌
2018/08/15
1.1K0
[操作系统]具有快表的内存转换机构
基本地址转换机构:一组硬件机构,将逻辑地址转换成物理地址,需要两次访存,先查页表再查内存 具有快表的地址转换机构 1)局部性原理 2)什么是快表 3)引入快表后,地址转换只需要一次访存
唯一Chat
2021/01/02
7760
SAS中哈希表的连接问题
哈希表即散列表(Hash table),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。在SAS中使用哈希表十分简单,你并不需要知道SAS内部是怎么实现的,只需要知道哈希表是存储在内存中的,查找是根据key值直接获得存储的地址的精确匹配。加上使用哈希表合并数据集时不用排序的优点,在实际应用中可以极大的提高程序运行效率,尤其是数据集较大的时候。但是由于哈希表是放到内存中的,因此对内存有一定要求!
专业余码农
2020/07/15
2.4K0
python中csv的应用
dic = {'张三':123, '李四':456, '王二娃':789} csvFile3 = open('ming.csv','w') writer2 = csv.writer(csvFile3) for key in dic: writer2.writerow([key, dic[key]]) csvFile3.close()
py3study
2020/01/14
1.2K0
HIVE基础命令Sqoop导入导出插入表问题动态分区表创建HIVE表脚本筛选CSV中的非文件行GROUP BYSqoop导出到MySQL字段类型问题WHERE中的子查询CASE中的子查询
从一个表查数据插入到另一个表中,出现以下异常: 'STATUS' in insert schema specification is not found among regular columns of srm.invoice_lines_temp2 nor dynamic partition columns.. Error encountered near token 'material_group'
spilledyear
2018/10/09
15.4K0
HIVE基础命令Sqoop导入导出插入表问题动态分区表创建HIVE表脚本筛选CSV中的非文件行GROUP BYSqoop导出到MySQL字段类型问题WHERE中的子查询CASE中的子查询
impdp导入中碰到的两个问题
前两天,需要将远程一个测试库用expdp导出的数据dump导入到本地的一个测试环境中,其中碰到了一些问题,值得小结下。
bisal
2019/01/29
1.6K0
【求助】从大表中删除小表中存在的记录问题
A表:30万,主键ID B表:300万,主键ID 从B表中删除ID=A表ID的记录。 DELETE FROM B WHERE EXISTS (SELECT 1 FROM (SELECT ID FROM (SELECT T.ID, ROWNUM RN FROM A) WHERE RN > 0 AND RN <= 50000) AB WHERE A.ID = B.ID); 但执行计划显示COST较大,且瓶颈是B表的全表扫描。 需求是这里有B1 ... B10多个B表(都是300万),串行操作
bisal
2019/01/29
5.1K0

相似问题

pd.read_csv的问题

322

pd.read_csv截断问题

22

pd.read_csv存在csv文件之间列数不同的问题

15

pd.read_csv的小数问题

20

hadoop流中的pd.read_csv问题

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文