IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Python数据分析-Pandas模块(1) -> 正文阅读

[人工智能]Python数据分析-Pandas模块(1)

Pandas 是一个 Python 类库,用于数据分析、数据处理、数据可视化,它具有高性能的数据结构和数据分析工具,经常与 numpy(数学计算)、scikit-learn(机器学习)?结合使用。

1. Pandas 数据读取

Pandas 需要先读取表格类型的数据,然后进行分析。

数据类型说明Pandas 读取方法
csv、tsv、txt用逗号、tab分隔的纯文本文件pd.read_csv
Excel微软xls、xlsx文件pd.read_excel
mysql关系型数据库表pd.read_sql

1.1 读取 csv 文件

读取 csv 文件,使用 pd.read_csv 方法,使用默认的标题行、逗号分隔符。

import pandas as pd

fpath = "文件路径.csv"

# 读取数据,并赋给一个变量
ratings = pd.read_csv(fpath)
# 在控制台打印数据
print(ratings)
'''查看csv文件特定内容的方法'''

# 查看前几行数据
ratings.head()

# 返回数据的行、列数
ratings.shape

# 查看列名列表
ratings.columns

# 查看索引列表
ratings.index

# 查看每列的数据类型
ratings.dtypes

1.2 读取 txt 文件

读取 txt 文件,使用 pd.read_csv 方法,自定义分隔符、列名,查看方法同 csv 文件

创建一个 1.txt 文件(为了方便,可以使用相对路径),为这个 txt 文件写入三列数据,未定义标题行及列名,每列数据由逗号隔开,文件示意如下。

# 导入pandas库
import pandas as pd

# 导入txt文件,使用相对路径
fpath = "1.txt"

# 读取数据
pvuv = pd.read_csv(
    fpath,

    # sep=“ ”  自定义分隔符,若默认为逗号,可以省略

    # 无标题行
    header=None,
    # 自定义列名
    names=["name", "card number", "mark"],
)

# 在控制台打印数据
print(pvuv)

1.3 读取 Excel 文件

读取 Excel 文件,使用 pd.read_excel 方法。

创建一个 Excel1.xlsx?文件(为了方便,可以使用相对路径),为这个文件写入三列数据,第一行为列名,并默认读取第一个表单,文件示意如下。

# 导入库
import pandas as pd
import xlrd

# 导入Excel文件
fpath = "Excel1.xlsx"

# 读取数据,默认第一个表单
p = pd.read_excel(fpath, sheet_name="1")

# 在控制台打印数据,数据结构与读取的txt文件类似
print(p)

''' 使用pycharm运行这段代码时,可能会报错,
根据提示安装openpyxl库即可'''

读取 Excel 文件特定内容的方法:

'''---读取指定行的数据---'''
# 默认读取前5行数据
print(p.head())

# 默认读取前2行数据
print(p.head(2))

#返回指定的行的ndarray结果
print(p.ix[[0,2,3]].values) 

#返回指定的行的DataFrame结果 
print(p.ix[[0,2,3]])

#返回指定的index结果
print(p.index[0:5:2])

#根据index返回指定的行的ndarray结果
print(p.ix[df.index[0:5:2]].values)

#根据index返回指定的行的DataFrame结果
print(p.ix[df.index[0:5:2]])

'''---读取指定列的数据---'''
#只能获取单列值
print(p['name'].values)

#返回指定的列的DataFrame结果
print(p.ix[:,["name","address"]])

#返回columns结果
print(list(p.columns[0:3:1]))

#根据index返回指定的列的ndarray结果
print(p.ix[:,list(p.columns[1:3:1])].values)

#根据index返回指定的列的DataFrame结果
print(p.ix[:,list(p.columns[1:3:1])])

'''---读取指定行和列的数据---'''
#3,4行,1,2列,起始行列都为0
d = df.ix[list(p.index[3:5:1]),list(p.columns[1:3:1])]

1.4 读取 mysql 数据

读取 mysql 文件,使用 pd.read_sql 方法。

import pymysql

conn = pymysql.connect(
    host="127.0.0.1",
    user="root",
    password="12345678",
    database="test",
    charset="utf8",
)
mysql_page = pd.read_sql("select * from 表名", con=conn)
print(mysql_page)

2. Pandas 数据结构

当从一个文件中读取一块数据后,此时这个数据还是二维数据(DataFrame),并不方便我们操作,从二维数据中查找一维数据,一行或一列(Series),将二维数据降至一维数据,这样可以使我们更好地操作数据。

DataFrame:二维数据,整个列表,多行多列。

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

?2.1 Series

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

利用列表创建 Series:

import pandas as pd

s1 = pd.Series([1, "michael", 2.5, 77])
# 左侧为索引,右侧为数据
print(s1)
# 获取索引
print(s1.index)
# 获取数据
print(s1.values)

# 输出结果
0          1
1    michael
2        2.5
3         77
dtype: object
RangeIndex(start=0, stop=4, step=1)
[1 'michael' 2.5 77]

创建一个具有标签索引的 Series:

s2 = pd.Series([1, "michael", 2.5, 77], index=["a", "b", "c", "d"])
print(s2)
print(s2.index)

# 输出结果
a          1
b    michael
c        2.5
d         77
dtype: object
Index(['a', 'b', 'c', 'd'], dtype='object')

使用字典创建 Series:

dict1 = {"a": 1, "b": "michael", "c": 2.5, "d": 77}
s3 = pd.Series(dict1)
print(s3)

# 输出结果
a          1
b    michael
c        2.5
d         77
dtype: object

根据索引查询数据,类似于字典:

dict1 = {"a": 1, "b": "michael", "c": 2.5, "d": 77}
s3 = pd.Series(dict1)

print(s3["a"])
print(type(s3["b"]))
print(s3[["c", "d"]])
print(type(s3[["c", "d"]]))

# 输出结果
1
<class 'str'>
c    2.5
d     77
dtype: object
<class 'pandas.core.series.Series'>

2.2 DataFrame

DataFrame 是一个表格型数据结构,创建方法也就是读取文件,其有三个特点:

1)每列可以是不同的值类型;

2)既有行索引 index,又有列索引 columns;

3)可以看做由?Series 组成的字典。

根据多个字典创建 DataFrame:

data = {
    "state": [1, 24, 56, 100],
    "year": [2008, 2012, 2021, 2022],
    "name": ["li", "wang", "chen", "qin"]
}
df = pd.DataFrame(data)
print(df)
print(df.dtypes)
print(df.index)
print(df.columns)

# 输出结果
   state  year  name
0      1  2008    li
1     24  2012  wang
2     56  2021  chen
3    100  2022   qin
state     int64
year      int64
name     object
dtype: object
RangeIndex(start=0, stop=4, step=1)
Index(['state', 'year', 'name'], dtype='object')

2.3 从 DataFrame 中查询出 Series

如果只查询一行或一列,返回 pd.Series;

如果查询多行或多列,返回 pd.DataFrame。

查询一列或一行:

data = {
    "state": [1, 24, 56, 100],
    "year": [2008, 2012, 2021, 2022],
    "name": ["li", "wang", "chen", "qin"]
}
df = pd.DataFrame(data)

# 查询一列
print(df["year"])
print(type(df["year"]))

# 查询一行
print(df.loc[1])
print(type(df.loc[1]))

# 输出结果
0    2008
1    2012
2    2021
3    2022
Name: year, dtype: int64
<class 'pandas.core.series.Series'>

state      24
year     2012
name     wang
Name: 1, dtype: object
<class 'pandas.core.series.Series'>

查询多行或多列:

data = {
    "state": [1, 24, 56, 100],
    "year": [2008, 2012, 2021, 2022],
    "name": ["li", "wang", "chen", "qin"]
}
df = pd.DataFrame(data)

# 查询多列
print(df[["year", "name"]])
print(type(df[["year", "name"]]))

# 查询多行
print(df.loc[1:3])
print(type(df.loc[1:3]))

# 输出结果
   year  name
0  2008    li
1  2012  wang
2  2021  chen
3  2022   qin
<class 'pandas.core.frame.DataFrame'>

   state  year  name
1     24  2012  wang
2     56  2021  chen
3    100  2022   qin
<class 'pandas.core.frame.DataFrame'>

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-06 13:50:16  更:2022-02-06 13:52:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 20:24:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码