Python核心语法-Pandas读写csv和tsv文件

Python核心语法-Pandas读写csv和tsv文件

一、pandas文件读取

python跨平台,Windows,MacOS,Linux都可以运行。功能比Excel,PowerBI tableau等软件强大。Python在非结构化数据(文本,图像)和深度学习领域更有优势。
numpy(Numerical Python)是Python语言的一个扩展程序库。是一个运行速度非常快的数学库,主要用于数组计算。

Pandas 是一个强大的分析结构化数据的工具集。它的使用基础是Numpy(提供高行呢个的矩阵运算)。用于数据挖掘和数据分析,同时也提供数据清洗功能。
Matplotlib是一个功能强大的数据可视化开源Python库。
Seaborn是一个Python数据可视化开源库。建立在Matplotlib之上,并继承了pandas的数据结构。面向数据集的API,与pandas配合使用更方便。

环境准备

anaconda:

在这里插入图片描述

cmd 启动 进conda base
conda install 包名字
或者 Anaconda prompt 以管理员身份启动。

在这里插入图片描述


conda 命令:

conda install 包名字 conda create -n 虚拟环境名字 conda activate conda deactivate conda remove -n conda list env conda search pymysql 

pip安装:

pip install 包名字

使用pip安装时要指定安装源。
阿里云:https://mirrors.aliyun.com/pypi/simple/
豆瓣:https://pypi.douban.com/simple/
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学:https://pypi.mirrors.ustc.edu.cn/simple/

pip install pymysql pip install pymysql ==1.0.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip install sqlalchemy pip install sqlalchemy ==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
# 版本错误 执行如下: pip uninstall sqlalchemy pip install sqlalchemy ==1.4.31 

2.1 pandas操作csv

方法:
read_xxx
to_xxx

pandas.read_csv(文件路径,分隔符默认’,',指定读取的列名)

step1.导包,修改相对路径的位置;(引入文件)

import pandas as pd import numpy as np import os from spyder_kernels.utils.lazymodules import pandas os.chdir(r'D:\python_work\python_work\day02')# 修改相对路径# 解决中文显示问题,import matplotlib as plt plt.rcParams['font.sans-serif']=['SimHei']#如果是Mac本,不支持SimHe的时候,可以修改为 'Microsoft YaHei' 或者 'Arial Unicode MS' plt.rcParams['axes.unicode_minus']=False

step2.读取csv文件。

# 1. Pandas操作csv 文件; data = pd.read_csv("./data/LJhouse.csv",sep=',',usecols=['open','hign','close','close'])# 用df data 

step3.写入csv文件。

# 2. Pandas操作csv 文件,保存为csv文件 ;把读取到的数据保存为csv文件 写到文件中; data[:10].to_csv("./data/my_file1.csv",sep=',',index=False)# 不要索引列 index=Falseprint('写入成功!')

step4.读写tsv文件。

# 3.特殊csv文件 tsv 文件# tsv文件以 tab 键为分隔符 data[:5].to_csv("./data/my_file2.tsv",sep='\t',index=True)# 要索引; 右键刷新dataprint('写入成功!')# 4. 读取tsv 文件 df2 = pd.read_csv("./data/my_file2.tsv",sep='\t',index_col=0)# 第一列设置为索引列 index_col=0 df2 

完整代码:

import pandas as pd import numpy as np import os from spyder_kernels.utils.lazymodules import pandas os.chdir(r'D:\python_work\python_work\day02')# 修改相对路径# 解决中文显示问题,import matplotlib as plt plt.rcParams['font.sans-serif']=['SimHei']#如果是Mac本,不支持SimHe的时候,可以修改为 'Microsoft YaHei' 或者 'Arial Unicode MS' plt.rcParams['axes.unicode_minus']=False# 1. Pandas操作csv 文件; data = pd.read_csv("./data/LJhouse.csv",sep=',',usecols=['open','hign','close','close'])# 用df data # 2. Pandas操作csv 文件,保存为csv文件 ;把读取到的数据保存为csv文件 写到文件中; data[:10].to_csv("./data/my_file1.csv",sep=',',index=False)# 不要索引列 index=Falseprint('写入成功!') pd.read_csv("./data/test.csv")# 3.特殊csv文件 tsv 文件# tsv文件以 tab 键为分隔符 data[:5].to_csv("./data/my_file2.tsv",sep='\t',index=True)# 要索引; 右键刷新dataprint('写入成功!')# 4. 读取tsv 文件 df2 = pd.read_csv("./data/my_file2.tsv",sep='\t',index_col=0)# 第一列设置为索引列 index_col=0 df2 

2.2 Pandas操作mysql

方法:
read_sql
to_sql

前期准备:anaconda需要安装模块:pymysql 和sqlalchemy
管理员运行anaconda prompt , 安装pymysql 和sqlalchemy ;

 pip install 模块名 
pip install pymysql 
pip install pymysql pip install pymysql ==1.0.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip install sqlalchemy pip install sqlalchemy ==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/ 

运行版本有问题执行如下:

# 版本错误 执行如下: pip uninstall sqlalchemy pip install sqlalchemy ==1.4.31 

查看mysql表;

showdatabases;use test;showtables;

step1.导入包

#2.导包from sqlalchemy import create_engine import pandas as pd import numpy as np import os import pymysql os.chdir(r'F:\Dev\Python_Code\Python_numpy')# 1.准备写到mysql数据表的数据  data = pd.read_csv("./data/my_file2.csv",sep=',')# encoding='gbk' ,index_col=0 data 

运行如下图:

在这里插入图片描述


step2. 数据写入Mysql数据库

# 3.创建引擎对象 engine = create_engine('mysql+pymysql://root:asdfjkl@localhost:3306/test?charset=utf8')# 4.具体的写数据的动作#df2 = pd.read_csv("./data/my_file2.tsv",sep='\t',index_col=0) # 第一列设置为索引列 index_col=0#df2# 参数说明:1. 数据表明, 2. 引擎对象, 3. 是否把索引写入数据库, 4. 如果表存在如何处理 data.to_sql('my_table',con=engine,if_exists='append')# index=False,#5. 提示print('写入成功!')

运行如下图:

在这里插入图片描述

step3.查看MySQL数据。

# df2.to_sql('my_table',con=engine,if_exists='append',index=False) # if_exists='append'# 6.查看数据 sql_df = pd.read_sql('my_table',con=engine)# select * from my_table limit 0,2 sql_df 

运行如下图:

在这里插入图片描述

2.3 读写json

read_json
to_json

方法:读取pandas.read_json(typ=‘frame’,lines=False)

step1.读取json文件。

#2.导包 from sqlalchemy import create_engine import pandas as pd import numpy as np import os import pymysql # 解决中文显示问题,import matplotlib as plt plt.rcParams['font.sans-serif']=['SimHei']#如果是Mac本,不支持SimHe的时候,可以修改为 'Microsoft YaHei' 或者 'Arial Unicode MS' plt.rcParams['axes.unicode_minus']= False os.chdir(r'F:\Dev\Python_Code\Python_numpy')

step2.打印读取到的内容。

# 1.读取json文件。 参数1.文件路径 2.读取的格式 3.是否按行读取; json_df = pd.read_json('./data/test.json',orient='columns',lines=True)# 2. 打印读取到的内容 json_df 

step3.写入到json文件。

# 3. 把上述的数据,写到json文件中 json_df.to_json('./data/test1.json',orient='records',lines=True)#  print('写入成功')

2.4 读写excel

read_excel
to_excel

二、 Pandas数据分析

Pandas分析房产数据示例步骤:
step1.导入包。

# 导包import pandas as pd import numpy as np import os os.chdir(r'D:\Python_Code\Python_Code\day02')

step2.加载数据集。

# 1.加载数据集 house_df = pd.read_csv("./data/LJhouse.csv") house_df 

step3.查看数据集。

# 3.查看数据集 ;# 1.查看数据前5行 house_df.head()# 2.查看列数据分布 house_df.info()# 3.查看列统计指标 ctrl +回车 house_df.discribe(include = all) house_df.discribe()# 默认只统计 数值型数据# 默认统计所有数据(包括字符串)# 4.查看数据形状 house_df.shape #(2760,13)

step4.分析具体需求。

# 具体需求# 1.找到租金最低,和租金最高的房子# 思路1 排序 house_df.sort_values(by='小区价格',ascending=True).head(1)#最便宜的 house_df.sort_values(by='小区价格',ascending=False).tail(1)#最贵的 价格一样的考虑不到# 思路2 最小值 最大值 筛选 house_df[house_df.price==1300]#house_df.price.min() house_df[house_df.price==house_df.price.max()] house_df[house_df['小区价格']==house_df['小区价格'].min()]# 思路3 house_df.nlargest(1,'小区价格')# 最大的n个 ,参数1 最大的一个,参数2 列名 思路1的简化版; house_df.nsmallest(1,'小区价格')# 最小的那个#%%# 2. 找到最近新上的10套房源 house_df.sort_values(by='小区房龄',ascending=False).head(10)# 不能这么写;# house_df.nlargest(10,'小区房龄') #%%# 3.查看所有更新时间 house_df.更新时间.unique()

Python完整代码:

# 导包import pandas as pd import numpy as np import os os.chdir(r'D:\Python_Code\Python_Code\day02')# F:\Dev\Python_Code\Python_numpy ctrl +shift +c 项目右键复制路径# os.getcwd() # 相对路径hangge# shift +回车 切换第二个#%%# 1.加载数据集 house_df = pd.read_csv("./data/LJhouse.csv") house_df # 2.修改列名为英文--------------------------- house_df['地址'] house_df.columns =['district ','address','title','house_type ','price ','area ','house_type ','orientation ','floor ','total_floor ','age ','subway ','subway_distance ','subway_line ','subway_name ','subway_direction ','subway_distance ','subway_line ','subway_name ','subway_direction ','subway_distance ','subway_line ','subway_name ','subway_direction ','subway_distance ','subway_line']# 'district' ,'address' ,'title' ,house_type ,price ,area ,house_type ,orientation ,floor ,total_floor ,age ,subway ,subway_distance ,subway_line ,subway_name ,subway_direction ,subway_distance ,subway_line ,subway_name ,subway_direction ,subway_distance ,subway_line ,subway_name ,subway_direction ,subway_distance ,subway_line# ['id', '小区名称', '小区地址', '小区类型', '小区价格', '小区面积', '小区房型', '小区朝向', '小区楼层', '小区总楼层', '小区房龄', '小区地铁', '小区地铁距离', '小区地铁线路', '小区地铁名称', '小区地铁方向', '小区地铁距离', '小区地铁线路', '小区地铁名称', '小区地铁方向', '小区地铁距离', '小区地铁线路', '小区地铁名称', '小区地铁方向', '小区地铁距离', '小区地铁线路', '小区地铁名称', '小区地铁方向', '小区地铁'] house_df #%%# 3.查看数据集 ;# 1.查看数据前5行 house_df.head()# 2.查看列数据分布 house_df.info()# 3.查看列统计指标 ctrl +回车 house_df.discribe(include = all) house_df.discribe()# 默认只统计 数值型数据# 默认统计所有数据(包括字符串)# 4.查看数据形状 house_df.shape #(2760,13)#%% md#%%# 具体需求# 1.找到租金最低,和租金最高的房子# 思路1 排序 house_df.sort_values(by='小区价格',ascending=True).head(1)#最便宜的 house_df.sort_values(by='小区价格',ascending=False).tail(1)#最贵的 价格一样的考虑不到# 思路2 最小值 最大值 筛选 house_df[house_df.price==1300]#house_df.price.min() house_df[house_df.price==house_df.price.max()] house_df[house_df['小区价格']==house_df['小区价格'].min()]# 思路3 house_df.nlargest(1,'小区价格')# 最大的n个 ,参数1 最大的一个,参数2 列名 思路1的简化版; house_df.nsmallest(1,'小区价格')# 最小的那个#%%# 2. 找到最近新上的10套房源 house_df.sort_values(by='小区房龄',ascending=False).head(10)# 不能这么写;# house_df.nlargest(10,'小区房龄') #%%# 3.查看所有更新时间 house_df.更新时间.unique()

Read more

2026 AI十大趋势:木头姐《Big Ideas 2026》深度解读,解锁大加速时代的技术红利

2026 AI十大趋势:木头姐《Big Ideas 2026》深度解读,解锁大加速时代的技术红利

木头姐《Big Ideas 2026》报告指出,AI已成为撬动全球经济“大加速”的核心引擎,不再孤军奋战。本文结合报告核心数据与观点,以幽默接地气的语气,拆解2026年AI十大核心趋势,助力普通人轻松读懂技术红利。 引言 全球科技投资圈“顶流”木头姐(凯茜·伍德),带着她的十周年力作《Big Ideas 2026》如约而至!作为科技圈的“预言家手册”,这份报告每年都能精准预判行业走向,今年更是以“The Great Acceleration”(大加速)为核心,抛出震撼论断:AI早已告别“闭门造车”,成为五大创新平台的“发动机”,正引爆全球经济的变革狂欢。不同于往年聚焦单一技术,今年木头姐重点凸显AI的“全能辅助”角色——自身迭代升级的同时,还在疯狂“带飞”其他技术。接下来,我们就用最轻松的语气,拆解报告里最劲爆的AI十大趋势,

By Ne0inhk
[linux仓库]图解System V共享内存:从shmget到内存映射的完整指南

[linux仓库]图解System V共享内存:从shmget到内存映射的完整指南

🌟 各位看官好,我是! 🌍 Linux == Linux is not Unix ! 🚀 今天来学习System V共享内存,从了解接口再到探查共享内存实现的原理。 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享更多人哦! 目录 System V共享内存 共享内存原理 创建共享内存 - 研究特性 shmget 创建共享内存 shmctl - 控制共享内存 shmat - 挂接共享内存 shmdt - 删除映射关系  再探共享内存原理 特征总结 总结 扩展  借助管道实现控制板共享内存 System V共享内存 我们前面说过,当需要有进程间通信的需求时,程序员为了偷懒选择了复用之前的代码,创建了管道,而管道的原理是基于文件的.随着时代的发展,程序员逐渐发现有一些是管道不能解决的问题,因此不得不真正的创建了一个可以进行通信的资源.此时,在上层就有公司定制了一套System V标准,由其他公司按照这个标准进行不同的实现.

By Ne0inhk
边缘AI新标杆: 高通跃龙 IQ-9075 EVK开发板深度解析

边缘AI新标杆: 高通跃龙 IQ-9075 EVK开发板深度解析

摘要:本文将深入介绍高通发布的工业级边缘AI评估套件翼龙IQ-9075 EVK,从硬件规格到开发环境,全面解析这款面向机器人和工业自动化的强大平台。 🔥文末免费领取《IQ-9075 EVK 产品简报》官方 PDF 原文件! 一. 引言🎯 在边缘AI快速发展的今天,越来越多的应用场景要求设备具备强大的本地AI处理能力。Qualcomm推出的Dragonwing IQ-9075 EVK评估套件正是针对这一需求而生,为开发者提供了一个功能强大的工业级边缘AI开发平台。 二、五大核心亮点🔥 1. 异构计算架构,性能强劲 IQ-9075采用先进的异构计算架构,配备: * 高性能Kryo Gen 6八核CPU * Adreno 663 GPU * 100 TOPS Hexagon NPU 这种设计允许CPU处理通用计算任务,同时将AI工作负载智能卸载到GPU和NPU,实现最优的性能表现。 2. 边缘AI能力出众 专用NPU提供高达100 TOPS的密集计算性能,支持: * 运行130亿参数的大语言模型 * 每秒生成12个token的推理速度 * 完全离线的

By Ne0inhk
人工智能:多模态大模型原理与跨模态应用实战

人工智能:多模态大模型原理与跨模态应用实战

人工智能:多模态大模型原理与跨模态应用实战 1.1 本章学习目标与重点 💡 学习目标:掌握多模态大模型的核心原理、跨模态特征融合方法,以及基于多模态模型的图文生成与理解任务实战流程。 💡 学习重点:理解多模态模型的架构设计,学会使用 Hugging Face 生态工具调用 CLIP 与 BLIP-2 模型,完成图文检索与图像描述生成任务。 1.2 多模态大模型的核心概念与发展背景 1.2.1 什么是多模态大模型 💡 多模态大模型是指能够同时处理文本、图像、音频、视频等多种不同类型数据的人工智能模型。它打破了传统单模态模型的信息壁垒,实现了跨模态的理解与生成。 多模态大模型的核心能力体现在两个方面: * 跨模态理解:实现不同模态数据之间的关联分析,例如根据文本描述查找对应图像、根据图像内容生成文字摘要。 * 跨模态生成:以一种模态数据为输入,生成另一种模态的数据,例如文本生成图像、图像生成文本、语音生成视频等。 与单模态大模型相比,多模态大模型更贴近人类的认知方式。人类在认识世界的过程中,本身就是通过视觉、听觉、语言等多种感官渠道接收和处理信息的。

By Ne0inhk