Pandas读取csv-程序员宅基地

技术标签: pandas  python  csv  csv文件处理  

对于文件的操作中,读写csv操作是一个比较常见的操作,很多时候可能会选择使用python中的文件读取的方式对csv文件操作,这种方式并没有什么问题,但读写的效率不高,编写的代码量也偏多。

这里介绍使用pandas进行简单的读。写也基本类似。

一、Pandas读取表头:

使用pandas读取表头很简单,一行代码搞定,如下:

    # 读取表头
    head_row = pd.read_csv('123.csv', nrows=0)

这一行代码读取的是一个对象,如果要以列表形式输出,可以增加如下一行代码:


    # 表头列转为 list
    head_row_list = list(head_row)

二、读取具体数据:

以文件读取的方式读取具体数据,需要的代码量比较多,也需要做循环遍历,使用pandas操作如下:

    # 读取
    csv_result = pd.read_csv('123.csv', usecols=head_row_list)
    row_list = csv_result.values.tolist()
    print(f"行读取结果:{row_list}")

上面展示的是打印行读取的结果。使用pandas,还可以很方便的将行转换为列,并打印出行转列的结果,如下代码段:

    col_obj = csv_result.T
    col_list = col_obj.values.tolist()
    print(f"行转列读取结果:{col_list}")
    return head_row_list, col_list

完整的代码如下:

import pandas as pd


def csv_file_read():
    # 读取表头
    head_row = pd.read_csv('123.csv', nrows=0)
    print(list(head_row))
    # 表头列转为 list
    head_row_list = list(head_row)

    # 读取
    csv_result = pd.read_csv('123.csv', usecols=head_row_list)
    row_list = csv_result.values.tolist()
    print(f"行读取结果:{row_list}")
    col_obj = csv_result.T
    col_list = col_obj.values.tolist()
    print(f"行转列读取结果:{col_list}")
    return head_row_list, col_list



if __name__ == '__main__':
    csv_file_read()

是不是很简单,十几行代码即可搞定。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/youzhouliu/article/details/122675700

智能推荐

编译原理—LR(0)分析表的构造(C++实现)_lr(0) c++-程序员宅基地

文章浏览阅读946次。构造识别活前缀的DFA若A->a.Bb属于 CLOSURE(I), 则每一个形如B->.r的项目也属于CLOSURE(I)根据DFA构建LR(0)分析表。_lr(0) c++

DHCP源码分析-系统概述_isc-dhcp-server源码-程序员宅基地

文章浏览阅读3.9k次。先名词解释下: DHCP:动态主机配置协议(Dynamic Host Configuration Protocol),是一个局域网的网络协议,使用UDP协议工作。它的前身是BOOTP(Bootstrap Protocol)初始引导协议。 BOOTP则可以自动地为那些主机设定TCP/IP环境。但BOOTP有一个缺点:您在设定前须事先获得客户端的硬体位址,而且,与IP的_isc-dhcp-server源码

算法数据结构——记忆化搜索(Memoization Search)算法超详细总结加应用案例讲解-程序员宅基地

文章浏览阅读5.4k次,点赞11次,收藏54次。记忆化搜索(Memoization Search):是一种通过存储已经遍历过的状态信息,从而避免对同一状态重复遍历的搜索算法。记忆化搜索是动态规划的一种实现方式。在记忆化搜索中,当算法需要计算某个子问题的结果时,它首先检查是否已经计算过该问题。如果已经计算过,则直接返回已经存储的结果;否则,计算该问题,并将结果存储下来以备将来使用。举个例子,比如「斐波那契数列」的定义是:$f(0) = 0, f(1) = 1, f(n) = f(n - 1) + f(n - 2)$。_记忆化搜索

ssm/php/node/python学生学习平台-程序员宅基地

文章浏览阅读775次,点赞22次,收藏21次。分析d96d6平台的功能和特色,能够帮助学生识别和选择最适合自己的学习资源,从而在学习过程中实现个性化发展。在长远来看,这种对学习平台的研究和应用,将对学生终身学习能力的培养产生积极影响,为他们未来的学术发展和职业生涯打下坚实的基础。其中,d96d6作为一个新兴的学生学习平台,它集成了丰富的教学资源、互动工具和个性化学习方案,旨在为学生提供一个高效、便捷的学习环境。然而,面对众多学习平台的竞争,如何准确理解d96d6平台的特点和优势,以及如何在该平台上有效学习,成为了学生们普遍关心的问题。

谷歌浏览器怎么长截图怎么截_Google浏览器如何截取网页长图 - 里维斯社-程序员宅基地

文章浏览阅读2.9k次。前面我们介绍过类似浏览器截取长图的方法和工具,但是对于Google浏览器来说都不太好用。今天我们从网上搜集整理了一些适用于Google浏览器截取网页长图的方法。往期截图长图的方法和工具可以前往阅读:截图的快捷键、工具、方法有很多,譬如我们通常使用QQ自带的截图工具(快捷键Ctrl+Alt+A)、360极速浏览器自带的截图工具(快捷键Ctrl+M),还有键盘上的截图按键(PetScranton)等。..._谷歌浏览器长截图

C++语法要点_day是枚举型变量,为什么day=day+1不行-程序员宅基地

文章浏览阅读716次。{}列表初始化花括号里没有提供初始值,对于基本类型的变量,初始值将默认为0。int a{};int b{2};auto定义有初始化的变量时,可以用auto推断其数据类型。 #include <iostream> using std::cout; using std::endl; int main() { auto b = true; auto ch{ 'X' }; auto i = 123; au._day是枚举型变量,为什么day=day+1不行

随便推点

Asp.NetCore3.1开源项目升级为.Net6.0-程序员宅基地

文章浏览阅读1.8k次。概述自从.Net6.0出来后,一直想之前开发的项目升级.Net6.0,有时想想毕竟中间还跨了个5.0版本,升级起来不知道坑大不大,最近抽时间对升级的方案做了些研究,然后将代码升级为.Net..._.asp.net mvc升级到.net6

AndroidStudio案例——简单计算器_android studio计算器-程序员宅基地

文章浏览阅读2.0w次,点赞44次,收藏414次。设计一款带有可视化界面的简单计算器,供用户输入数据并查看结果。用户通过点击相应按钮(加减乘除运算符、等号、数字)输入正确的表达式,计算器进行相应的加减乘除运算,且可以进行小数和整数的运算;长按清除按钮3秒,可以清除已录入的内容。在Layout文件夹中建立布局文件,完成计算器界面的网格布局设计,包括了一个文本编辑框和17个按钮。为每一个按钮编写单击事件,实现对应功能;点击数字和加减乘除按钮实现表达式的录入,并显示在TextView中;点击等号按钮,根据表达式计算结果;长按清除按钮3。_android studio计算器

Jmeter3.2监控系统资源问题-程序员宅基地

文章浏览阅读345次。今天用了一下最新版的Jmeter3.2,在进行系统资源监控的时候加入JMeterPlugins-Extras-1.4.0和JMeterPlugins-Standard-1.4.0两个jar包,但是启动执行就报错去报错的类中查找了一下确实没有这个方法。至于jmeter3.2怎么能够正确的监控系统资源现在还不知道,但是造成报错的原因估计是因为JMeterPlugins-Extras-1_jmeter3.2监控系统资源

数据库开发工程师&岗位职责and技能要求_数据开发工程师的职责和技能-程序员宅基地

文章浏览阅读8.2k次,点赞5次,收藏44次。数据库开发工程师主要职责深入研究数据库内核相关技术,设计并实现数据库管理系统深入了解数据库应用的业务需求,主导设计不同数据库架构的应用软件,并持续优化根据业务需求设计数据库逻辑和物理模型, 开发数据库生产环境所需要的存储过程、函数、脚本等参与数据库生产环境的问题优化和解决探索、研究新的数据库架构发展方向工作内容数据库开发工程师的日常工作是设计、开发数据库系统和数据库应用软件,因..._数据开发工程师的职责和技能

C语言输出浮点数_printf输出浮点数-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏2次。好,我们一起来看这个程序,这个程序是C语言程序,先把函数头ST tio点h,给写完以后再把main函数,给写出来以后,我们再用float,这个是专门来输出浮点数的,只不过这个是单精度,然后我们命名一个变量ff=12点001234,然后我们再用printf进行输出,注意输出的时候百分号后面要加f,而不是dd表示的是整数,f表示的是浮点数,我们今后还会学到双精度,也就是double这期再见,关注我下期更精彩。_printf输出浮点数

Win7如何共享有线网络实现手机上网_没有虚拟网卡的win7怎么共享网络给手机-程序员宅基地

文章浏览阅读4.1k次。使用win7自带的创建临时网络,是计算机到计算机的,所以不支持手机连接所以需要两个命令来实现netsh wlan set hostednetwork mode=allow ssid=你想建立的网络名字(英文格式) key=你想设置的密码(至少8位)回车再输入netsh wlan start hostednetwork按回车,激活这个无线网络。(这两条命令有先后顺序)_没有虚拟网卡的win7怎么共享网络给手机