首页 > 其他分享 >Pandas的读写数据

Pandas的读写数据

时间:2024-09-18 19:53:22浏览次数:3  
标签:.. df 读写 索引 student output csv 数据 Pandas

目录

读写文件的类型

Excel写

API

准备数据

1.直接写入(默认有索引和标题)

2.写入(去掉索引)

3.写入(去掉索引和标题)

4.写入(去掉索引和标题,指定表单信息)

 Excel读

API

1.读(默认带有索引和标题)

2.读(指定索引项)

3.读(碰到无标题列和无索引列,指定索引列,标题列)

4.读(只要1,2,3列)

5.读(只读前两列)

6.读(跳过前两行)

CSV写

 API

准备数据

1.写(默认是有标题行和索引列)

2.写(去掉索引列)

3.写(去掉标题和索引列)

4.写(去掉索引和标题,只要id列和name列)

5.写(去掉索引列和标题列,并且更换分隔符)

6.写(追加效果)

7.写(默认格式是复写)

CSV读

API

1.读(无索引列的文件)

 2.读(有索引的文件)

3.读(指定索引列)

4.读(指定索引列,将birthday解析成日期类型)

5.读(指定索引列,指定非默认分隔符)

MySQL写

1.先在数据库中创建表

2.读取python上的表

3.创建数据库操作引擎对象并指定数据库

4.将数据写入MySQL数据库

MySQL读

1.导入相关库

2.通过表读

3.通过sql读


读写文件的类型

Excel写

API

  • excel_writer:指定要写入的 Excel 文件路径或ExcelWriter对象。例如:'output.xlsx'。

  • sheet_name:指定要写入的工作表名称。默认值为'Sheet1'。例如:sheet_name='MyData'。

  • index:布尔值,决定是否写入行索引。默认值为True,表示写入行索引。例如:index=False则不写入行索引。

  • columns:可选择要写入的列,可以是列名列表。默认值为写入所有列。例如:columns=['col1', 'col2']只写入指定的两列。

准备数据

准备数据(字典)
import pandas as pd

data = [
    [1, '张三', '1999-3-10', 18],
    [2, '李四', '2002-3-10', 15],
    [3, '王五', '1990-3-10', 33],
    [4, '隔壁老王', '1983-3-10', 40]
]

df = pd.DataFrame(data, columns=['id', 'name', 'birthday', 'age'])
df

1.直接写入(默认有索引和标题)

df.to_excel('../output/student.xls')

2.写入(去掉索引)

df.to_excel('../output/student1.xls', index=False)

3.写入(去掉索引和标题)

df.to_excel('../output/student_2.xls', index=False, header=False)

4.写入(去掉索引和标题,指定表单信息)

df.to_excel('../output/student_3.xls', index=False, header=False, sheet_name='学生信息')

 Excel读

API

  • excel_writer:指定要写入的 Excel 文件路径或ExcelWriter对象。例如:'output.xlsx'。

  • sheet_name:指定要写入的工作表名称。默认值为'Sheet1'。例如:sheet_name='MyData'。

  • index:布尔值,决定是否写入行索引。默认值为True,表示写入行索引。例如:index=False则不写入行索引。

  • columns:可选择要写入的列,可以是列名列表。默认值为写入所有列。例如:columns=['col1', 'col2']只写入指定的两列。

1.读(默认带有索引和标题)

import pandas as pd

# 1 读(默认)
df = pd.read_csv("../output/student.csv")
df

2.读(指定索引项)

pd.read_excel("../output/student.xls",index_col=0)

3.读(碰到无标题列和无索引列,指定索引列,标题列)

pd.read_excel("../output/student_2.xls",header=None)

4.读(只要1,2,3列)

pd.read_excel("../output/student_2.xls",header=None, usecols=[1,2,3])

5.读(只读前两列)

pd.read_excel("../output/student_2.xls",index= None,header=None, nrows=2)

6.读(跳过前两行)

pd.read_excel("../output/student_2.xls",index_col= None,header=None,skiprows=2)

CSV写

 API

  • sep:指定分隔符,默认为,。例如:sep=';'可以使用分号作为分隔符。

  • mode:指定文件打开模式,默认为'w'(写入模式)。如果要追加数据,可以使用'a'。

准备数据

# 1.1 准备数据(字典)
data = [
    [1, '张三', '1999-3-10', 18],
    [2, '李四', '2002-3-10', 15],
    [3, '王五', '1990-3-10', 33],
    [4, '隔壁老王', '1983-3-10', 40]
]

df = pd.DataFrame(data, columns=['id', 'name', 'birthday', 'age'])
df

 

1.写(默认是有标题行和索引列)

df.to_csv("../output/student_1.csv")

2.写(去掉索引列)

df.to_csv("../output/student_2.csv",index=False)

3.写(去掉标题和索引列)

df.to_csv("../output/student_5.csv",index=False,header = False)

4.写(去掉索引和标题,只要id列和name列)

df.to_csv("../output/student_4.csv",index=False,header = False,columns = ['id','name'])

 5.写(去掉索引列和标题列,并且更换分隔符)

df.to_csv("../output/student_3.csv",index=False,header = False,sep = '*')

6.写(追加效果)

df.to_csv('../output/student_3.csv', index=False, header=False, columns=['id', 'name', 'age'], sep='*', mode='a')

注:在student_3.csv的基础上追加,

7.写(默认格式是复写)

df.to_csv('../output/student_3.csv', index=False, header=False, columns=['id', 'name', 'age'], sep='*', mode='w')

CSV读

API

  • sep:指定分隔符,默认为,。如果 CSV 文件使用其他分隔符,如制表符\t或分号;,可以通过这个参数指定。例如:sep=';'。

  • names:如果header=None,可以使用这个参数指定列名列表。例如:names=['col1', 'col2', 'col3']。

  • index_col:指定用作行索引的列号或列名。可以是整数、整数列表或None。如果是整数,该列为行索引;如果是列表,多个列被组合成一个层次化索引;如果是None,则不使用任何列作为行索引,行索引将是从 0 开始的整数。默认值为None。例如:index_col=0表示将第一列作为行索引。

  • usecols:指定要读取的列。可以是列名列表、整数列表或一个可调用对象,用于筛选列。例如:usecols=[0, 2]表示读取第一列和第三列。

  • skiprows:指定要跳过的行数。可以是整数、整数列表或可调用对象。例如:skiprows=2表示跳过前两行。

  • nrows:指定要读取的行数。例如:nrows=100表示读取前 100 行数据。

  • encoding:指定文件的编码方式。常见的编码有utf-8等。例如:encoding='utf-8-sig'。

1.读(无索引列的文件)

import  pandas as pd
df = pd.read_csv("../output/student_2.csv")
df

 2.读(有索引的文件)

df = pd.read_csv("../output/student_1.csv")
df

3.读(指定索引列)

df = pd.read_csv("../output/student_1.csv",index_col = 0)
df

4.读(指定索引列,将birthday解析成日期类型)

# 原列类型
df = pd.read_csv("../output/student_5.csv", header=None, names=['编号', '姓名', "出生日期", "年龄"])
df.info()
print('----------------')
# 改变后
df = pd.read_csv("../output/student_5.csv", header=None, names=['编号', '姓名', "出生日期", "年龄"], parse_dates=['出生日期'])
df.info()

5.读(指定索引列,指定非默认分隔符)

df = pd.read_csv("../output/student_3.csv", header=None, names=['编号', '姓名', "出生日期", "年龄"], parse_dates=['出生日期'], sep='*')
df

根据*分隔数据

MySQL写

目的是将python中的表写入MySQL中

1.先在数据库中创建表

drop database if exists test;
create database test char set utf8;
use test;

2.读取python上的表

import pandas as pd
from kafka import conn

# 读
df = pd.read_csv("../output/student.csv", index_col=0)
df

3.创建数据库操作引擎对象并指定数据库

# 连接
from sqlalchemy import create_engine

conn = create_engine("mysql+pymysql://root:[email protected]:3306/test?charset=utf8")

4.将数据写入MySQL数据库

# 写
df.to_sql('student', con=conn, if_exists='replace', index=False)

但是此时birthday那一列是text格式

扩展:指定写入日期的格式是data

from sqlalchemy import types

dtype = {'birthday':types.Date}

df.to_sql('student_2', con=conn, if_exists='append', index=False, dtype=dtype)

MySQL读

1.导入相关库

import pandas as pd
from sqlalchemy import create_engine

2.通过表读

# 1.通过表读
conn = create_engine('mysql+pymysql://root:[email protected]:3306/test?charset=utf8')


df = pd.read_sql_table("student_2",con = conn)
df

3.通过sql读

# 2 通过sql读取
conn = create_engine('mysql+pymysql://root:[email protected]:3306/test?charset=utf8')

df = pd.read_sql_query("select * from student_2 where age > 30",con = conn)
df

 

标签:..,df,读写,索引,student,output,csv,数据,Pandas
From: https://blog.csdn.net/weixin_58305115/article/details/142287968

相关文章

  • 【MySQL】使用C语言连接数据库
           看到标题,可能会疑惑,我们学习的不是C++吗,为什么使用C语言去连接数据库呢??实际上,这两种语言都可以连接数据库,但是C语言提供的API没有进行封装,更有利于我们学习数据库连接。面向API编程,哈哈哈哈哈哈!!!!!一、安装适合自己平台的mysqlconnect库    因为我使用......
  • Springboot会员制医疗预约服务管理信息系统g15ia(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景随着人们对健康需求的日益增长,传统医疗预约方式已难以满足高效、便捷的服务需求。预约流程繁琐、信息传递效率低下等问题日益凸显。因......
  • Springboot基于Bootstrap的智能家居网站o79ok(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容随着物联网技术的迅猛发展,智能家居已成为现代家庭追求便捷、高效生活方式的重要趋势。为了响应市场需求,提升用户体验,本项目计划设计并实现一个基于B......
  • Springboot化妆品销售5571i--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景随着消费者生活水平的提高和审美意识的增强,化妆品行业迎来了前所未有的发展机遇。市场上化妆品种类繁多,品牌竞争激烈,消费者对产品的品......
  • 硬盘接入电脑提示格式化是什么原因 上海数据恢复
    硬盘接入电脑后提示格式化,可能由多种原因造成。以下是一些常见的原因及简要说明:文件系统损坏:当硬盘的文件系统(如NTFS、FAT32等)发生损坏时,操作系统可能无法正确识别硬盘,从而提示需要格式化。文件系统损坏可能由多种因素引起,如不当的插拔操作、突然断电、硬盘老化等。感染:某些恶意软......
  • 计算机租房数据分析—django基于Django的租房数据分析和展示系统
    标题:django基于Django的租房数据分析和展示系统设计并实现一个基于Django的租房数据分析和展示系统,旨在为房产中介、房东以及租户提供市场趋势洞察和房源信息分析。系统的核心功能模块:1.数据采集与整合•房源信息抓取:从各大房产平台自动抓取房源列表,包括租金、位置、面......
  • MySQL数据库select语句详细用法三(子查询及其select练习)
    SELECT*FROMstudent2WHEREage> (SELECTageFROMstudent2WHERENAME='欧阳丹丹')首先解释一下括号中的代码,意思是在查询student2中的name为欧阳丹丹的人的名字,然后解释一下整个语句的意思:在括号中查询出来的字段中再次进行查询在student2中age大于name为欧阳丹丹的......
  • 还在为毕业设计发愁吗?【Node.js Vue音乐推荐系统】帮你解决难题,如何通过大数据分析用
    ......
  • 领导友好型数据展示:Java后端到可视化实战汇报
    舒一笑的网站:www.shuyixiao.cloud里面:面试八股文、BAT面试真题、工作内推、工作经验分享、技术专栏等等什么都有,欢迎收藏和转发。优化数据呈现:打造领导友好的数据库汇报方案在本次分享中,我将探讨一个完整的数据处理与可视化流程,旨在将复杂的系统日志信息转化为直观、易懂的图形展......
  • 什么是结构化数据,非结构化数据
    原文链接:https://zhidao.baidu.com/question/572398265560335964.html1.结构化数据是指那些存储在数据库中,能够用二维表格结构来逻辑表达和实现的数据。2.非结构化数据则指不便于用数据库表格结构来表现的数据,它包括各种格式的文档、文本、图片、XML、HTML报表以及音频和视频信......