【零基础入门学习Python---Python数据处理和存储保姆级教程】

news2024/12/28 18:39:05

在这里插入图片描述

🚀 Python 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 Python 🚀

在这里插入图片描述

🍔 目录

  • 🍀 Python数据处理和存储
    • 🌿 特别注意
    • 🌿 使用内置的数据处理模块(csv、json、pickle等)
      • 🌾 csv模块进行数据处理
      • 🌾 json模块进行数据处理
      • 🌾 pickle模块进行数据处理
    • 🌿 使用Pandas库进行数据处理和分析
    • 🌿 使用NumPy库进行数值计算和矩阵操作
    • 🌿 使用SQLAlchemy进行数据库操作
    • 🌿 数据的持久化和序列化(文件存储、数据库存储)
    • 🌿 数据库操作(连接、查询、更新、删除)
    • 🌵 总结
    • 💬 共勉

🍀 Python数据处理和存储

Python是一门强大的语言,它提供了许多内置和第三方库,用于各种数据处理和存储操作。本文将介绍以下内容:

  • 使用内置的数据处理模块(csv、json、pickle等)
  • 使用Pandas库进行数据处理和分析
  • 使用NumPy库进行数值计算和矩阵操作
  • 使用SQLAlchemy进行数据库操作
  • 数据的持久化和序列化(文件存储、数据库存储)
  • 数据库操作(连接、查询、更新、删除)

在每个模块下,我们将以代码示例来说明相关的概念和技术。

🌿 特别注意

特别说明:下面所有演示的案例代码默认你都已经安装了相关的模块,如果没有安装,按找下面的命令操作即可

# 案例演示
pip install 你需要的模块
# 具体实操
pip install csv
pip install json
pip install pickle 

🌿 使用内置的数据处理模块(csv、json、pickle等)

Python提供了多个内置的数据处理模块,如csv、json和pickle等。这些模块可以帮助我们轻松地处理常见的数据格式,如CSV、JSON和Python对象。

🌾 csv模块进行数据处理

以下是一个CSV文件读写的示例代码:

import csv

# 读取csv文件
with open('data.csv', mode='r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

# 写入一个csv文件
with open('data.csv', mode='w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['id', 'name', 'age'])
    writer.writerow(['1', 'Tom', '25'])
    writer.writerow(['2', 'Jerry', '20'])

在这个示例中,我们使用csv模块读取了一个名为"data.csv"的CSV文件,并以行为单位打印了它的内容。接下来,我们使用相同的csv模块来写入一个csv文件。

好的,下面我将为你介绍如何使用Python内置的数据处理模块json和pickle。

🌾 json模块进行数据处理

JSON是一种轻量级的数据交换格式,JSON数据可以轻松地在不同的应用程序之间进行传递和处理。Python内置的json模块可以帮助我们轻松地进行JSON数据的编码和解码。

以下是一个使用json模块进行数据处理的示例代码:

import json

# 编码JSON
data = {'name': 'Tom', 'age': 25}
json_data = json.dumps(data)

# 打印编码后的JSON数据
print(json_data)

# 解码JSON
decoded_data = json.loads(json_data)

# 打印解码后的数据
print(decoded_data)

在这个示例中,我们首先创建了一个名为"data"的字典,并使用json.dumps()函数将其编码成JSON字符串。接着,我们使用print语句打印出编码后的JSON数据。最后,我们使用json.loads()函数解码JSON字符串,并将其存储在一个名为"decoded_data"的字典中,并使用print语句打印出解码后的数据。

使用类似方法,json模块还可以处理更加复杂的JSON数据格式。

🌾 pickle模块进行数据处理

Python中pickle模块可以帮助我们将Python对象序列化,从而轻松地进行对象保存和传输。pickle模块支持所有的Python对象,包括自定义类型、函数和类等。

以下是一个使用pickle模块进行数据处理的示例代码:

import pickle

# 序列化Python对象
data = {'name': 'Tom', 'age': 25}
serialized_data = pickle.dumps(data)

# 打印序列化后的数据
print(serialized_data)

# 反序列化Python对象
deserialized_data = pickle.loads(serialized_data)

# 打印反序列化后的Python对象
print(deserialized_data)

在这个示例中,我们首先创建了一个名为"data"的字典,并使用pickle.dumps()函数将其序列化成二进制字符串。接着,我们使用print语句打印出序列化后的数据。最后,我们使用pickle.loads()函数反序列化二进制字符串,将其存储在一个名为"deserialized_data"的字典中,并使用print语句打印出反序列化后的Python对象。

使用类似方法,pickle模块还可以序列化更加复杂的Python对象,如列表、元组、集合和自定义类等。

🌿 使用Pandas库进行数据处理和分析

Pandas是一个Python数据处理和分析库,它提供了高效的数据操作和分析工具,可以帮助我们轻松地进行各种数据处理和分析操作。

以下是一个Pandas示例代码:

import pandas as pd

# 创建一个数据框
data = {'name': ['Tom', 'Jerry', 'Alice', 'Bob'], 'age': [25, 20, 22, 30]}
df = pd.DataFrame(data)

# 打印数据框的内容
print(df)

# 从CSV文件创建数据框
df = pd.read_csv('data.csv')

在这个示例中,我们首先创建了一个数据框,包含了名字和年龄两个字段。接着,我们使用print语句打印数据框的内容。最后,我们在CSV文件中读取了数据,并创建了一个新的数据框。

使用类似方法,Pandas还可以执行文件解析、数据聚合、变换和分组等操作。

🌿 使用NumPy库进行数值计算和矩阵操作

NumPy是一个Python数值计算和科学计算库,它提供了高效的数值计算和矩阵操作工具,可以帮助我们轻松地进行各种数值计算和矩阵操作。

以下是一个NumPy示例代码:

import numpy as np

# 创建一个数组
a = np.array([1, 2, 3, 4, 5])

# 打印数组的内容
print(a)

# 数组操作
b = np.array([6, 7, 8, 9, 10])
print(a + b)
print(a * 2)

在这个示例中,我们首先使用NumPy库创建了一个数组,并使用print语句打印出它的内容。接着,我们进行了一些数学操作,包括加法和乘法,打印了它们的结果。

NumPy还可以执行矩阵操作、多维数组操作和随机数生成操作等。

🌿 使用SQLAlchemy进行数据库操作

SQLAlchemy是一个Python的ORM库,它可以生成SQL语句,同时在Python代码中允许我们以面向对象的方式进行数据库操作,比如连接数据库,查询、更新和删除数据等。

以下是一个SQLAlchemy示例代码:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# 连接数据库
engine = create_engine('sqlite:///data.db', echo=True)

# 创建ORM基类
Base = declarative_base()

# 定义数据模型
class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

    def __repr__(self):
        return f"User(id={self.id}, name={self.name}, age={self.age})"

# 创建表格
Base.metadata.create_all(engine)

# 创建一个会话
Session = sessionmaker(bind=engine)
session = Session()

# 插入数据
user1 = User(name='Tom', age=25)
session.add(user1)
session.commit()

# 查询数据
users = session.query(User).all()
print(users)

# 更新数据
user = session.query(User).filter_by(name='Tom').first()
user.age = 26
session.commit()

# 删除数据
user = session.query(User).filter_by(name='Tom').first()
session.delete(user)
session.commit()

在这个示例中,我们首先使用SQLAlchemy连接了一个SQLite数据库,并定义了一个名为User的数据模型,该模型将映射到数据库中的一个用户表。接着,我们使用ORM的方式进行了插入、查询、更新和删除等操作,使用query()函数可以定义查询,all()函数可以返回查询结果。

🌿 数据的持久化和序列化(文件存储、数据库存储)

Python中可以使用多种方式将数据持久化存储到磁盘或数据库中,包括文件存储、数据库存储等。我们可以根据需求进行选择。

以下是一个文件存储示例代码:

import json

# 将数据写入json文件
data = {'name': 'Tom', 'age': 25}
with open('data.json', 'w') as f:
    json.dump(data, f)

# 从json文件中读取数据
with open('data.json', 'r') as f:
    data = json.load(f)
    print(data)

在这个示例中,我们首先将一个名为"data"的字典写入到"data.json"的文件中,接着使用json模块从这个文件中读取数据,并将数据存储在一个名为"data"的字典中,最后打印出来。

🌿 数据库操作(连接、查询、更新、删除)

Python中使用第三方库来实现数据库操作,比如使用MySQL的PyMySQL,使用MongoDB的pymongo等。

以下是一个MySQL数据库操作示例代码:

import pymysql

# 连接数据库
db = pymysql.connect(host='localhost', port=3306, user='root', password='password', database='mydb')
cursor = db.cursor()

# 插入数据
sql = "INSERT INTO users(name, age) VALUES('Tom', 25)"
cursor.execute(sql)
db.commit()

# 查询数据
sql = "SELECT * FROM users"
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
    print(row)

# 更新数据
sql = "UPDATE users SET age=26 WHERE name='Tom'"
cursor.execute(sql)
db.commit()

# 删除数据
sql = "DELETE FROM users WHERE name='Tom'"
cursor.execute(sql)
db.commit()

# 关闭数据库连接
db.close()

在这个示例中,我们使用pymysql连接到一个MySQL数据库,使用execute()函数执行了插入、查询、更新和删除操作。最后,我们使用close()函数关闭了数据库连接。

🌵 总结

本文中,我们介绍了Python数据处理和存储相关的内容,包括使用内置的数据处理模块(csv、json、pickle等)、使用Pandas库进行数据处理和分析、使用NumPy库进行数值计算和矩阵操作、使用SQLAlchemy进行数据库操作、数据的持久化和序列化(文件存储、数据库存储)以及数据库操作(连接、查询、更新、删除)。通过掌握这些基本技术,我们可以轻松地进行各种数据处理和存储操作,从而更好地开发Python应用。希望这篇文章能够帮助你掌握Python数据处理和存储的基础知识,并且对你的实践产生启发。如果你还有其他问题或建议,欢迎在评论区留言。

💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/692417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记一次Tomcat控制台弱口令爆破事件应急响应

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 事件背景介绍02 流量分析过程03 事件分析结果04 安全加固建议 01 事件背景介绍 某内部应急演练中,安全部门在安全设备上观察到大量Tomcat控制台登录请求,现需根据流量情况进…

多线程的CAS(Compare and Swap)机制与乐观锁、AtomicInteger等原子包装类的使用

一.乐观锁 与 CAS机制 在java的多线程并发过程中: ​ 1.当一个对象在多个内存中都存在副本时,如果一个线程在自己的工作内存修改了共享变量,其它线程也应该能够看到被修改后的值。常常用volatile关键字来保证多线程数据的可见性。 ​…

Nginx Rewrite 重写跳转

文章目录 一.Nginx Rewrite概述1.Rewrite跳转场景2.Rewrite跳转场景3.Rewrite跳转实现4.Rewrite实际场景4.1Nginx跳转需求的实现方式4.2 rewrite放在 server{},if{},location{} 段中4.3对域名或参数字符串 5.nginx正则表达式5.1 常用的正则表达式元字符 …

Jmeter(jmeter-plugins插件的安装使用)

目录 一、安装JMter Plugins 二、Custom Thread Groups插件 Stepping Thread Group 元件 Ultimate Thread Group 一、安装JMter Plugins 1、官网下载 JMeter Plugins 的jar包 2. 将下载的jar包复制到 %JMETER_HOME%\lib\ext 目录下 3. 启动 JMeter --> Options -->…

学习系统编程No.26【信号处理实战】

引言: 北京时间:2023/6/26/13:35,昨天12点左右睡觉,本以为能和在学校一样,7点左右起床,设置了7点到8点30时间段内的4个闹钟,可惜没想到啊,没醒,直接睡到了12点&#xff…

rust基本语法

文章目录 变量与可变性变量与常量Shadowing(隐藏)数据类型标量类型1.整数类型2.浮点类型3.布尔类型4.字符类型 复合类型1.Tuple2.数组 函数if表达式循环1.loop2.while3.for 变量与可变性 声明变量使用let关键字,默认情况下,变量是…

kafka初学入门

kafka概述 消息中间件对比 特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高(主从)高(主从)非常高(分布式)非常高&#xff0…

大模型显存占用分析

大模型显存占用由以下几部分组成: 1. 模型本身参数,假设是1个单位 2.模型的梯度,同样也是一个单位 3.优化器参数(占大头):以Adam参数为例,还需要在显卡中额外存储m和v两个参数,因…

File学习

1.构造方法 1.File(String pathname) 根据路径名创建抽象File对象 //1. 通过路径进行创建 pathname是字符串格式的路径名public File(String pathname) {if (pathname null) {throw new NullPointerException();}// 和系统交互 获取最近的File文件目录文件this.path fs.nor…

10分钟快速入门UI自动化-Puppeteer

目录 先简单介绍一下: 工欲善其事必先利其器,首先把所需要的工具装好 1. 安装node 2. 安装npm (node安装时会自动安装npm,如果已安装node,此步请忽略) 3. 安装cnpm (npm下载包失败,选择cnpm安装) 4. 新建一个nod…

【ICer必备 4】IC封装设计流程

【ICer必备 3】模拟IC设计全流程 ------------------------------------------------文末附往期文章链接--------------------------------------前言一、IC封装设计过程二、常见IC封装类型三、常见封装特点四、封装设计常用软件五、EM仿真常用EDA(1)HFS…

apt命令概述,apt命令在Ubuntu16.04安装openjdk-7-jdk

apt是一条linux命令,适用于deb包管理式操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。deb包是Debian 软件包格式的文件扩展名。 翻译过来就是: apt是一个命令行包管理器,为 搜索和管理以及查询…

解决MySQL删除数据后自增主键ID不连贯问题

首先我们需要取消id的自增和主键 下列代码以water表中的id列为例 alter table watermodify id int not null;alter table waterdrop primary key;然后重新生成id列 set i0; update water set water.id(i:i1);下一步就是重新设置为主键自增 alter table wateradd primary key…

【JSP技术】web杂谈(2)之JSP是什么?

涉及知识点 什么是JSP,JSP的特点,JSP的未来趋势,JSP的应用范例。深入了解JSP技术。 原创于:CSDN博主-《拄杖盲学轻声码》,更多内容可去其主页关注下哈,不胜感激 文章目录 涉及知识点前言1.什么是JSP2&…

Webpack和Vite简单使用

目录 WebPack 介绍 基础使用 初始化使用 webpack.config.js文件 webpack开发服务器 vite 介绍 使用 使用vite创建vue框架项目 WebPack 介绍 当我们习惯了在node中编写代码的方式后,在回到前端编写html、css、js这些东西会感觉到各种的不便。比如: 不能放心…

九、ElasticSearch 运维 -集群维度

1. 查看集群健康 用于简单的判断集群的健康状态,集群内的分片的分配迁移情况。 GET _cluster/health-------------------------Respond----------------------------- {"cluster_name" : "test-jie","status" : "green",…

使用数组的方式计算---任意给出一个年,月,日,判断出这是一年的第几天

任意给出一个年,月,日,判断出这是一年的第几天; 闰年算法:能被4整除且不能被100整除,或者能被400整除 如2015年 5 10 是这一年的第131天 使用数组的方式计算,将每个月的天数放在一个数…

蜂网互联 企业级路由器v4.31 密码泄露漏洞

漏洞描述 蜂网互联企业级路由器v4.31存在接口未授权访问,导致攻击者可以是通过此漏洞得到路由器账号密码接管路由器 漏洞影响 蜂网互联企业级路由器v4.31 网络测绘 app“蜂网互联-互联企业级路由器” 漏洞复现 payload http://ip:port/action/usermanager.ht…

c++ 杂食记

1. inline关键字 在C中,inline关键字用于指定函数应该被内联。 当一个函数被内联时,它的代码将直接插入到调用该函数的代码中,而不是作为单独的函数调用 这可以提高程序的性能,因为它减少了函数调用的开销,并提高了数…

计算机网络那些事之 MTU 篇

哈喽大家好,我是咸鱼 今天我们来聊聊计算机网络中的 MTU (Maximum Transmission Unit) 什么是 MTU ? MTU(Maximum Transmission Unit)是指数据链路层中的最大传输单元 通俗点来讲,MTU 是指数据链路层能…