1.pandas介绍环境安装

Pandas包是基于Python平台数据管理利器,已经成为了Python进行数据分析和挖掘时的数据基础平台和事实上的工业标准
使用Pandas完成数据读入数据清理数据准备图表呈现工作,为继续学习数据建模数据挖掘打下坚实基础。
安装pandas

pip install pandas==1.3.5 # 最稳定版本

2.Series对象创建

Series一维数组,与Numpy中的一维array类似。它是一种类似于一维数组对象,是由一组数据(各种 NumPy 数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据也可产生简单的Series 对象。用值列表生成 Series 时,Pandas 默认自动生成整数索引
简单来说,就是对numpy的一维数组array进行升级,多加了一个索引index

# 创建Series方法
import pandas as pd
# 1.使用列表创建
data = pd.Series([3,4,5,6,7])
print('1.使用列表创建:', data)

# 2.使用列表创建,指定index
data = pd.Series([3,4,5,6,7],index=['a','b','c','d','e'])
print('2.使用列表创建,指定index:', data)

# 3.使用list列表指定index
data = pd.Series([3,4,5,6,7],index=list("abcde"))
print('3.使用list列表指定index', data)

# 4.字典创建,默认将key作为index
population_dict = {'ch':2800,'bj':3000,'gz':1500,'sz':1200}
population_series = pd.Series(population_dict)
print('4.字典创建,默认将key作为index', population_series)

# 5.使用字典创建Series对象,指定index,存在时取交集进行显示
sub_series = pd.Series(population_dict,index=['bj','gz'])
print('5.使用字典创建Series对象,指定index,存在时取交集进行显示', sub_series)

# 6.使用字典创建Series对象,指定index,不存在显示NaN
sub_series = pd.Series(population_dict,index=['bj','abc'])
print('5.使用字典创建Series对象,指定index,存在时取交集进行显示', sub_series)

# 7.查看Series的索引index
print('7.查看Series的索引index:',data.index)

# 8.查看Series的值values
print('8.查看Series的值value',data.values)

在这里插入图片描述

3.DataFrame对象创建

在这里插入图片描述
DataFrame 是 Pandas 中的一个表格型的数据结构包含有一组有序的列,每列可以不同的值类型(数值字符串、布尔型等),DataFrame 即有行索引也有列索引,可以被看做是由 Series 组成的字典。
两个series对象作为dict的value传入,就可以创建一个DataFrame对象。
简单来说,就是对Series(或者说numpy二维数组)进行升级添加行列索引。

# 创建DataFrame对象
import pandas as pd
import numpy as np
# 1.通过创建Serirs来创建DataFrame
# 创建字典
population_dict = {'bj':3000,'sh':213,'gz':999}
area_dict = {'bj':111,'sh':876,'gz':425}
# 创建series对象
population_series = pd.Series(population_dict)
area_series = pd.Series(area_dict)
# 创建DataFrame
citys = pd.DataFrame({'area':area_series,"population":population_series})
print('1.通过创建Serirs来创建DataFrame:n',citys)

# 2.通过列表创建DataFrame(不添加列索引index)
# 创建字典
# 创建DataFrame
data = pd.DataFrame([population_dict, area_dict])
print('2.通过列表创建DataFrame(不添加列索引index)n',data)

# 3.通过列表创建DataFrame(添加列索引index)
# 创建字典
# 创建DataFrame
citys = pd.DataFrame([population_dict, area_dict],index=['population','area'])
print('3.通过列表创建DataFrame(添加列索引index)n',citys)

# 4.索引columns的使用
# DataFrame使用Series生成一维数组时,默认没有列索引
population_series = pd.Series(population_dict)
data = pd.DataFrame(population_series,columns=['population'])
print("4.索引columns的使用:n",data)

# 5.array创建DataFrame,二维数组指定columns和index
data = pd.DataFrame(np.random.randint(0,10,(3,2)),columns=list('ab'),index=list('efg'))
print('5.array创建DataFrame,二维数组指定columns和index:n',data)

# 6.查看DataFrame的行索引index 列索引columns 值values
print('行索引index:n',citys.index)
print('列索引columns:n',citys.columns)
print('值values:n',citys.values)


在这里插入图片描述

4.Pandas中Index对象

pandas中的index(行索引),是一个可变的一维数组

import pandas as pd
import numpy as np
# pandas中的index(行索引),是一个可变的一维数组
data = pd.DataFrame(np.random.randint(0,100,(3,4)), index=list('abc'), columns=list('ABCD'))
print('DataFrame:n',data)

# 1.获取行索引
ind = data.index
print('1.获取行索引:',ind)

# 2.根据索引下标获取索引值
print('2.根据索引下标获取索引值:n',ind[2])

# 3.切片取值
print('3.切片获取值n',ind[::2])

# 4.有ndmin shape dtype size属性
print('ndmin:',ind.ndim, 'shape:',ind.shape, 'dtype:',ind.dtype, 'size:',ind.size)

# 5. 但是不可以进行修改索引值
try:
    ind[3]=200
except:
    print('5.不可以修改索引值')

在这里插入图片描述

5.Pandas(Python)导入Excel文件

使用read_excel()方法导入文件,首先要指定文件路径
说明
使用Pandas模块操作Excel时候需要安装openpy
1.导入Excel文件

import pandas as pd
# 1.导入Excel文件
# 设置显示行数(列数)
pd.options.display.max_rows = 5
pd.options.display.max_columns = 5
pd.read_excel('stu_data.xlsx')

在这里插入图片描述
2.导入Excel文件,指定导入Excel中哪个Sheet

# 2.导入Excel文件,指定导入Excel中哪个Sheet
# 2.1 方法1:指定名称
pd.read_excel('stu_data.xlsx',sheet_name='Target')
# 2.2 方法2:指定Sheet索引
pd.read_excel('stu_data.xlsx',sheet_name=1)

在这里插入图片描述
# 3.导入Excel文件时,指定行索引、列索引

# 3.导入Excel文件时,通过index_col指定行索引
data = pd.read_excel('stu_data.xlsx',sheet_name=0, index_col=0)
print(data)
# 导入Excel文件时,通过header指定列索引
pd.read_excel('stu_data.xlsx',sheet_name=0, header=1)

在这里插入图片描述
4.导入Excel文件时,通过usecols指定导入列

# 4.导入Excel文件时,通过usecols指定导入列
pd.read_excel('stu_data.xlsx',usecols=[1,2,3])

在这里插入图片描述

6.Pandas(Python)导入csv文件

导入csv文件时除了指明文件路径,还需要设置编码格式。Python中用得比较多的两种编码格式是UTF-8和gbk,默认编码格式是UTF8。我们要根据导入文件本身的编码格式进行设置,通过设置参数encoding设置导入的编码格式
在这里插入图片描述
csv文件时gbk格式,以逗号进行分隔数据
导入csv文件,指定文件的编码格式(默认是UTF-8)

import pandas as pd
# 导入csv文件,指定文件的编码格式(默认是UTF-8)
# UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 2: invalid start byte
# 产生报错尝试指定gbk(大小写无所谓)
pd.read_csv('stu_data.csv',encoding='GBK')

在这里插入图片描述
导入csv文件,指明分隔符(默认是,)
分隔符号进行分隔。常用的分隔符除了逗号空格,还有制表符(t)。

# 导入csv文件,指明分隔符(默认是,)
df = pd.read_csv('stu_data.csv',encoding='gbk',sep=' ')
print('错误使用分隔符:n',df)
df = pd.read_csv('stu_data.csv',encoding='gbk',sep=',')
print('正确使用分隔符:n',df)

在这里插入图片描述

7.Pandas(Python)导入txt文件

导入.txt文件用得方法时read_table(),read_table()是将利用分隔符分开的文件导入。DataFrame的通用函数。它不仅仅可以导入.txt文件,还可以导入.csv文件。

import pandas as pd
# 导入txt文件
# 指定分隔符(默认是t) 指定编码格式encoding(默认是utf-8 大小写忽略
pd.read_table('stu_data.txt',encoding='UTF-8',sep='t')

在这里插入图片描述

8.Pandas读取数据库中数据

import pandas as pd
import pymysql
# 获取数据库的mysql连接
con = pymysql.connect(
    host='localhost',
    user='root',
    password='root',
    db='sxt',
    port=3306
)
sql = 'select * from t_user'
# 读去数据库中的数据,可以使用index_col设置索引列,默认是自动使用0-n
data1 = pd.read_sql(sql,con=con,index_col='id')

# 查询年龄大于10岁的
sql = 'select uname, age, sex, pwd from t_user where age>10'
data2 = pd.read_sql(sql, con=con)
data2

在这里插入图片描述

在这里插入图片描述

9.Pandas保存数据到CSV或Excel

import pandas as pd
# 读取文件保存为csv
df = pd.read_excel('stu_data.xlsx')
# df.to_csv(
    # path_or_buf: 要保存的文件路径 默认是相对路径
    # sep 分隔符(默认是逗号)
    # columns:需要到处的变量列表
    # header =True 指定到处数据的新变量名,可以直接提供list
    # index = True 是否导出索引
    # mode = 'w' Python写模式
    # encoding = ‘utf-8' 默认到处的文件编码格式
# )

df.to_csv("temp.csv",index=False)

# 读取文件保存为Excel
# df.to_excel(
    # filepath_or_buffer: 要读入的文件路径
    # sheet_name = 1 要保存的Sheet表单名称
# )
df.to_excel('temp_exl.xlsx',index=False, sheet_name="data")

在这里插入图片描述

在这里插入图片描述

10.Pandas保存数据到数据库

import pandas as pd
import pymysql
df = pd.read_excel('stu_data.xlsx')
# 保存数据到mysql数据库
# con = pymysql.connect(
#     host='localhost',
#     user='root',
#     password='root',
#     port=3306,
#     db='sxt',
#     charset='utf8'
# )
# 报错:DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': not all arguments converted during string formatting
# 解决方法更换引擎con
from sqlalchemy import create_engine
con = create_engine('mysql+pymysql://root:root@localhost:3306/sxt?charset=utf8')
# df.to_sql(
#     name :将要存储数据的表名
#     con : 连接引擎名称
#     if_exists = 'fail' :指定表已经存在时的处理方式
#              fail :不做任何处理(不插入新数据)
#              replace :删除原表并重建新表
#              append :在原表后插入新数据
#     index = True :是否导出索引 )
df.to_sql('t_stu',con=con,if_exists='append')

在这里插入图片描述

原文地址:https://blog.csdn.net/m0_63953077/article/details/128935483

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_32976.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注