【Python强化】使用pandas和csv读取csv文件_导入pandas库,读取data文件夹中的order.csv文件,编码格式为“gbk”,打印出所有列-程序员宅基地

技术标签: python  数据分析  数据挖掘  Python  

一、pandas读取方式

1、csv介绍

csv文件是一种以逗号分割字符的文件形式

我们创建一个简单的文件demo.csv,如下格式的形式进行存储,以,进行分割

name,score,age,sex
lhh,100,24,男
wcy,99,28,
2.读文件
  • 直接读取
import pandas as pd
# 读取csv文件  全文件读取
data = pd.read_csv('demo.csv',encoding="gbk")  # 中文显示需要指定编码格式
df = pd.DataFrame(data)   # 当然这一步也可以不要,因为读出来的结果就是这种格式的,但是习惯性的写上这种方式
print(df)

输出:

  name  score  age sex
0  lhh    100   24   男
1  wcy     99   28   女
  • 按行读取
# 读取csv文件,一行一行的进行读取
file = pd.read_csv('demo.csv',encoding="gbk")
df = pd.DataFrame(file)

for i in range(len(df)):
    row  = df[i:i+1]
    print(row ,'\n')

输出:

  name  score  age sex
0  lhh    100   24   男 

  name  score  age sex
1  wcy     99   28
  • 获取文本标题中的每个值
# row
print("获取row 中的每个值")
for i in range(len(df)):
    row  = df[i:i+1]
    name = row ['name'][i]
    score = row ['score'][i]
    print(name,score,'\n')
3.写入csv
# 写  使用pd将数据写入到csv文件当中,按列写入
file = pd.read_csv('demo.csv',encoding="gbk")
df = pd.DataFrame(file)

dict = {
    }

for i in range(len(df)):
    row = df[i:i + 1]
    name = row['name'][i]
    sex = row['sex'][i]
    dict[name] = sex

new_df = pd.DataFrame.from_dict(dict,orient='index')
new_df.to_csv('demo_new.csv')

文件内容:

,0
lhh,男
wcy,女

二、csv读取方式

1.读取操作
#encoding=utf-8
import csv


# 读取csv文件
with open("demo.csv","r",encoding="gbk") as csvfile:
    spamreader = csv.reader(csvfile)
    for row in spamreader:
        print(row)

输出:

['name', 'score', 'age', 'sex']
['lhh', '100', '24', '男']
['wcy', '99', '28', '女']
2.以字典形式进行读取
# 以字典的形式读取
with open("demo.csv","r",encoding="gbk") as file:
    reader = csv.DictReader(file)
    items = list(reader)
    print(items)

输出

[{
    'name': 'lhh', 'score': '100', 'age': '24', 'sex': '男'}, {
    'name': 'wcy', 'score': '99', 'age': '28', 'sex': '女'}]
#指定列读取
filename = ['name','sex']
with open("demo.csv","r",encoding="gbk") as file:
    reader = csv.DictReader(file,filename)
    items = list(reader)
    print(items)

输出:

[{
    'name': 'name', 'sex': 'score', None: ['age', 'sex']}, {
    'name': 'lhh', 'sex': '100', None: ['24', '男']}, {
    'name': 'wcy', 'sex': '99', None: ['28', '女']}]
3.写入操作
# 写入csv文件
with open("demo_new_csv.csv","w") as file:
    writer = csv.writer(file)
    writer.writerow(['name','score'])  # 此时的标题需要以list形式写入,writer会在新建的csv文件中,一行一行写入

文本内容

name,score

以字典方式写入

with open('demo_new_csv.csv', 'w',newline="",encoding="gbk") as f:
    writer = csv.DictWriter(f,fieldnames=["name","score","age","sex"])
    writer.writeheader()
    writer.writerows(items)
    writer.writerow({
    'name': 'lhh', 'score': '100', 'age': '24', 'sex': '男'})

文本内容

name,score,age,sex
lhh,100,24,男
wcy,99,28,女
lhh,100,24,
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38140292/article/details/121130426

智能推荐

EditorApplication.update += EditorUpdate;-程序员宅基地

文章浏览阅读6.2k次。在用Unity的时候遇到了这个表达,然后比较好奇。说一下自己对它的理解,大致的代码是这样写的:void Awake() { Timestamp = Utility.GetTimestamp(); /*获取系统当前时间*/ EditorApplication.update += EditorUpdate; }public void EditorUpdate() {..._editorapplication.update

jupyter的使用_jupyter notebook返回值-程序员宅基地

文章浏览阅读6.8k次。jupyter 的使用一、启动程序执行命令:jupyter notebook注意以下几点:打开地址为当前bash的目录,默认的根目录浏览器地址为 http://localhost:8888/通过control -C终止jupyter程序几个基本操作:DD:删除当前cellM:转为markdown文档markdown文档下运行变为预览模式二、IPython的帮助文档1. 使用help()通过help命令来获得帮助文档help(len)Help on built-in f_jupyter notebook返回值

fastadmin中的组件绑定Form.api.bindevent($("form[role=form]"))来历-程序员宅基地

文章浏览阅读6k次,点赞2次,收藏5次。一、为什么要用require?1、问题:网页引用多个js,例如:<script src="1.js"></script> <script src="2.js"></script> <script src="3.js"></script>各个js之间还有依赖关系,前后顺序必须一定,代码很难维护。2、require就..._form.api.bindevent

浙江理工大学2019年新生赛_ulire 最近在研究哈夫曼树,一种功能是将一串字符压缩为更短的 01 串的数据结构,现-程序员宅基地

文章浏览阅读1.6k次。问题 A: 你的名字题目描述Walfy同时喜欢上了n个妹子,第i个妹子的智力值为ai魅力值为bi。为了防止妹子们发现walfy是个渣男,现在walfy要给妹子排个序,这样他能按照这个排序分配和妹子聊天的时间。排序规则如下:智力高的妹子需要花费更多的时间来聊天,如果智力一样,那么魅力高的花费的时间将会多一点;如果她们的魅力也一样,姓名字典序更小的花费的时间也将多一点。对于字典序大小的定义,..._ulire 最近在研究哈夫曼树,一种功能是将一串字符压缩为更短的 01 串的数据结构,现

动手学深度学习之一一配置环境_no module named 'd21-程序员宅基地

文章浏览阅读2.3k次。一一配置环境一、安装Miniconda二、下载d21-zh安装包三、用conda创建虚拟环境四、jupyter notebook运行No moudule name'mxnet'一、安装Miniconda二、下载d21-zh安装包三、用conda创建虚拟环境#配置清华PyPI镜像(如无法运行,将pip版本升级到>=10.0.0)pip config set global.index-..._no module named 'd21

Paper Reading:Single-Shot Refinement Neural Network for Object Detection_CVPR2018-程序员宅基地

文章浏览阅读170次。Paper Reading:Single-Shot Refinement Neural Network for Object Detection_CVPR2018RefineDet论文阅读_single-shot refinement neural network for object detection

随便推点

使用poi读取excel异常IOException: OPC Compliance error [M4.3]: Producers shall not create a document ele..._exception in thread "main" cn.hutool.poi.exception-程序员宅基地

文章浏览阅读4k次。前言:  前一段时间,帮女朋友整理她们公司的破Excel文档,本着减少工作量的原则(居家好男人),帮忙写了个java main去读取整理Excel,到后来发现在读取到xlsx的excel报错,报错信息居然没看懂。。。报错信息Exception in thread "main" cn.hutool.poi.exceptions.POIException: IOException: OPC Co..._exception in thread "main" cn.hutool.poi.exceptions.poiexception: ioexceptio

Beyond Compare文件比对_beyond compare 4.2 密钥-程序员宅基地

文章浏览阅读3.2k次。Beyond Compare_beyond compare 4.2 密钥

第一章:初探Spring Cloud Config配置集中管理_springcloud 集中配置管理-程序员宅基地

文章浏览阅读1.5k次。前路艰难,但谨记,你并不孤独。Spring Cloud如火如荼,抽空研究研究Spring大家族中的新份子。具体的介绍不会粗线在本系列博文中,如需要理论等知识直接百度or谷歌。Spring Cloud中保护N多已构建好的微服务,可以做到即插即用,其中大致包含几种服务:Config、Eureka、Ribbon、Hystrix、Feign、Bus等,具体介绍及开源地址请见:Spring Cloud中文官_springcloud 集中配置管理

leetcode647. 回文子串_leetcode 647-程序员宅基地

文章浏览阅读116次。题目大意给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: "abc"输出: 3解释: 三个回文子串: "a", "b", "c".示例 2:输入: "aaa"输出: 6说明: 6个回文子串: "a", "a", "a", "aa", "aa", "aaa".解题思路动态规划,判断s[i]~s[j]是否是回文串,如果是回文串,res++。class Solution {_leetcode 647

Akka中Actor消息通信的实现原理(源码解析)_actor mailbox 实现原理-程序员宅基地

文章浏览阅读4.4k次。Akka中通过下面的方法向actor发送消息! tell 意味着 “fire-and-forget”,即异步的发送消息无需等待返回结果? ask 异步发送消息并返回代表可能回复的Future。消息在每个发件人的基础上是有序的。MailBoxAkka邮箱包含发往Actor的消息。通常每个Actor都有自己的邮箱,但是也有例外,比如BalancingPool所有路由将共享_actor mailbox 实现原理

安卓ListView的使用_android listview使用-程序员宅基地

文章浏览阅读1.1k次。listview是一个以垂直方式在项目中显示视图的列表。是一种不能实现确定视图中的内容的适配器视图(adapter view)。数据和视图的绑定,需要通过继承ListViewAdapter接口的适配器实现。确保当上下滚动的时候,能够动态刷新视图内容。通常我们都会自定义一个继承自BaseAdapter(已继承ListViewAdapter),ArrayAdapter(继承自BaseAdapter),SimpleAdapter(继承自BaseAdapter)的类,重写getView()方法,实现自己想要的功能。_android listview使用

推荐文章

热门文章

相关标签