python-pandas自学笔记

参考视频:跟着孙兴华学习Pandas 大数据分析入门课(B站)

参考资料:https://pan.baidu.com/s/162dV7YSt3KkRFIGnrLGmUg
提取码:2545

pandas中文官网:Pandas: 强大的 Python 数据分析支持库 | Pandas 中文 (pypandas.cn)

注:内容来自孙老师的笔记。

一、环境配置

pip install numpy

pip install pandas

pip install xlrd

pip install openpyxl 

二、pandas基础知识

1、 文件类型与新建文件

文件类型

说明

新建方法

csv、tsv、txt

用逗号分隔、tab分割的纯文本文件

pd.to_csv

excel

xls或xlsx

pd.to_excel

mysql

关系数据库表

pd.to_sql

代码示例: 

import pandas as pd

'''
01.数据类型与新建文件
数据类型	           说明	                              新建方法
csv、tsv、txt    用逗号分隔、tab分割的纯文本文件	pd.to_csv
excel           xls或xlsx	                          pd.to_excel
mysql	        关系数据库表	                          pd.to_sql
'''

# 创建xlsx文件,并且将数据录入表格。
file_path = './test.xlsx'  # 创建的文件路径,以及文件名称。
data = pd.DataFrame({'id': [1, 2, 3], '姓名': ['叶问', '李小龙', '孙兴华']})  # 录入表格的数据
data = data.set_index('id')  # 将id设置为索引
data.to_excel(file_path)  # 将数据写入Excel文件
print('新建空白文件.xlsx成功')

# 创建txt文件,并且将数据录入表格。
file_path = './test.txt'  # 创建的文件路径,以及文件名称。
data = pd.Series("好好学习,天天向上")  # 录入文本的数据
data.to_csv(file_path)  # 将数据写入txt文件
print('新建空白文件.txt成功')




结果:

文件夹:

 2 读取文件数据

文件类型

说明

读取方法

csv、tsv、txt

默认逗号分隔

pd.read_csv

csv、tsv、txt

默认\t分隔

pd.read_table

excel

xls或xlsx

pd.read_excel

mysql

关系数据库表

pd.read_sql

2.1读取txt(cvs)文件

文件类型

说明

读取方法su

csv、tsv、txt

默认逗号分隔

pd.read_csv

csv、tsv、txt

默认\t分隔

pd.read_table

切记:如果分隔符不止一种,使用正则表达式sep='\s+'

 2.1.1 读取txt文件-cvs相似

"""
读取数据
文件类型	          说明	      读取方法
csv、tsv、txt	默认逗号分隔	pd.read_csv
csv、tsv、txt	默认\t分隔	pd.read_table
excel	        xls或xlsx	pd.read_excel
mysql	        关系数据库表	pd.read_sql

"""

import pandas as pd

# 一、读取数据
file_path = 'E:\python_project\python-DataAnalysis\python-pandas\Pandas课件\课件\pandas教程\课件001-005\读取文件.txt'
'''
读取txt文件
'''
data = pd.read_csv(file_path)
# pd.read_csv 按照逗号划分
# pd.read_table 按照制表符划分

print(data)
'''
(1)通过names=['a','b','c']可以自己设置列标题。
(2)sep=',':英文逗号或"\t",从文件、url、文件型对象中加载带分隔符的数据,默认为'\t'。(read_csv默认分隔符是逗号),可以通过制定sep 参数来修改默认分隔符
(3)header=None:读取没有标题的文件时,默认为第一行作为列标题,设置header=None,意思就是没有表头,后面你自己写表头
(4)index_col='入职日期':设置索引属性
'''
print('\n')
# 二、查看前几行数据
print(data.head())  # 默认是5行,指定行数写小括号里
print('\n')
# 三、查看数据的形状,返回(行数、列数)
print(data.shape)
print('\n')
# 四、 查看列名列表
print(data.columns)
print('\n')
# 五、查看索引列
print(data.index)
print('\n')
# 六、查看每一列数据类型
print(data.dtypes)


结果:文件中没有表头,所以将数据第一行是为表头,所以出现如下的结果。

 

 2.1.2 读取txt文件-进阶

示例:

import pandas as pd
'''
自己制定分隔符、列名
参数	        描述
sep	        分隔符或正则表达式 sep='\s+'
header	    列名的行号,默认0(第一行),如果没有列名应该为None
names	    列名,与header=None一起使用
index_col   索引的列号或列名,可以是一个单一的名称或数字,也可以是一个分层索引
skiprows   	从文件开始处,需要跳过的行数或行号列表
encoding   	文本编码,例如utf-8
nrows	    从文件开头处读入的行数    nrows=3

'''
# 一、读取数据
path = 'E:\python_project\python-DataAnalysis\python-pandas\Pandas课件\课件\pandas教程\课件001-005\读取文件.txt'
'''
读取txt文件
'''
data = pd.read_csv(path, sep=',', header=None, names=['性别', '姓名', '年龄', '电话', '地址', '入职日期'], encoding='utf-8',
                   index_col='入职日期')
print(data)
''' 
(1)通过names=['a','b','c']可以自己设置列标题。
(2)sep=',':英文逗号或"\t",从文件、url、文件型对象中加载带分隔符的数据,默认为'\t'。(read_csv默认分隔符是逗号),可以通过制定sep 参数来修改默认分隔符
(3)header=None:读取没有标题的文件时,默认为第一行作为列标题,设置header=None,意思就是没有表头,后面你自己写表头
(4)index_col='入职日期':设置索引属性
'''
print('\n')
# 二、查看前几行数据
print(data.head())  # 默认是5行,指定行数写小括号里
print('\n')
# 三、查看数据的形状,返回(行数、列数)
print(data.shape)
print('\n')
# 四、 查看列名列表
print(data.columns)
print('\n')
# 五、查看索引列
print(data.index)
print('\n')
# 六、查看每一列数据类型
print(data.dtypes)

结果:

 注意:你的txt文档必需另存为utf-8编码,如果是ASCII报错

参数

描述

sep

分隔符或正则表达式 sep='\s+'

header

列名的行号,默认0(第一行),如果没有列名应该为None

names

列名,与header=None一起使用

index_col

索引的列号或列名,可以是一个单一的名称或数字,也可以是一个分层索引

skiprows

从文件开始处,需要跳过的行数或行号列表

encoding

文本编码,例如utf-8

nrows

从文件开头处读入的行数    nrows=3

2.1.3txt文件转csv文件

import pandas as pd
# 读取txt文件的数据
data = pd.read_csv('E:\python_project\python-DataAnalysis\python-pandas\Pandas课件\课件\pandas教程\课件001-005\读取文件.txt')
# 创建cvs文件,并且将数据写入其中。
data.to_csv ('./读取文件.cvs')
print(data)

结果:

 文件夹:

 2.2 读取MySQL数据库

示例:

import pandas as pd
import pymysql
连接对象 = pymysql.connect(host = 'localhost',user = 'root',password = '1234',database = 'test',charset = 'utf8')
读取文件 = pd.read_sql("select * from 1班",con=连接对象)
# 第1个参数是SQL查询语句,第2参数是数据库连接
print(读取文件)

2.3 读取Excel文件

import pandas as pd
# 文件的路径
path = "E:\python_project\python-DataAnalysis\python-pandas\Pandas课件\课件\pandas教程\课件001-005\读取文件.xlsx"
# 设置数据的格式
data = pd.read_excel(path, header=None, names=['序号', '姓名', '年龄', '地址', '电话', '入职时间'], index_col='序号')
print(data)
# 将数据写入文件
data.to_excel('./读取文件.xlsx')

表格内容:

 

结果:

 3pandas数据结构

DataFrame:二维数据,整个表格,多行多列   【简称df

df.index:索引列

df.columns:列名

Series:一维数据,一行或一列

 

 3.1 pd.Series:一维数据

Series是一种类似于一维数组的对象,它由一组数据(不同数据类型)以及一组与之相关的数据标签(即索引)组成。

案例:

import pandas as pd

# 仅有数据列表即可产生最简单的Series
data = pd.Series([1234, '鑫', 467, '2000-02-30'])  # 左侧是索引,右侧是数据
print('仅有数据列表即可产生最简单的Series:')
print(data)
print(data.index)  # 获取索引,返回索引的(起始值,结束值,步长)
print(data.values)  # 获取数据,返回值序列,打印元素值的列表
print('-' * 30)

# 我们指定Series的索引
data = pd.Series([1234, '鑫', 467, '2000-02-30'], index=['a', 'b', 'c', 'd'])  # 指定索引
print('我们指定Series的索引:')
print(data)
print(data.index)  # 返回指定的索引
print('-' * 30)

# 使用Python字典创建Series
dict1 = {'姓名': '赵匡义', '性别': '男', '年龄': '20', '地址': '宋代皇宫'}
data = pd.Series(dict1)
print('使用Python字典创建Series:')
print(data)
print(data.index)  # 返回key
print('-' * 30)

# 根据标签索引查询数据
print('根据标签索引查询数据:')
print(data)  # 查询整个字典
print(data['姓名'])  # 通过key可以查对应的值
type(data['年龄'])  # 通过key可以查对应值的类型
print(data[['姓名', '年龄']])  # 通过多个key查对应的值
type(data[['姓名', '年龄']])  # 注意:他不返回值的类型,而返回Series
print('-' * 30)

list1 = ['姓名', '性别', '年龄']
list2 = ['赵飞', '男', 20]
data = pd.Series(list2, index=list1)  # 指定谁是索引
print('键和值存在两个列表中,创建Series:')
print(data)

 结果:

 备注:

Series只是一个序列,可能是一行,也可能是一列,现在无法确定用行的方法,把Series加入DataFrame,就是行,反之就是列。

猜你喜欢

转载自blog.csdn.net/qq_47541315/article/details/127292100