pandas入门

2023-11-13

pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool

一、读取文本文件中的数据

# 导入pandas库
import pandas as pd

1.1 读取csv文件,以逗号作为分隔符。

file_path = "./ratings.csv"
datas = pd.read_csv(file_path)
# 查看数据的前几行
datas.head()
userId movieId rating timestamp
0 1 296 5.0 1147880044
1 1 306 3.5 1147868817
2 1 307 5.0 1147868828
3 1 665 5.0 1147878820
4 1 899 3.5 1147868510
# 查看数据的形状,返回行数以及列数
datas.shape
(25000095, 4)
# 查看列表名称,以列表的形式返回
datas.columns
Index(['userId', 'movieId', 'rating', 'timestamp'], dtype='object')
# 查看索引值
datas.index
RangeIndex(start=0, stop=25000095, step=1)
# 查看每列的数据类型
datas.dtypes

userId         int64
movieId        int64
rating       float64
timestamp      int64
dtype: object

1.2 读取txt文件,以 \t 作为分隔符

file_path = "./demo.txt"
datas = pd.read_csv(file_path, sep='\t', header=None, names=['Year', 'month', 'day'])
datas
Year month day
0 2019 1 2
1 2020 2 3
2 2021 3 7
3 2022 4 9

1.3 读取excel文件

file_path = "./books.xlsx"
datas = pd.read_excel(file_path)
datas
0 2019 1 1
1 2020 2 2
2 2021 3 3
3 2022 4 4

1.4 读取MySQL数据表

# 安装sqlalchemy包
!pip install sqlalchemy
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting sqlalchemy
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/b4/03/8102d7442498ba2dc915673c6617b1d1729cd3c762f275eb83c6bdc78dd0/SQLAlchemy-1.4.40-cp310-cp310-win_amd64.whl (1.6 MB)
     ---------------------------------------- 1.6/1.6 MB 1.2 MB/s eta 0:00:00
Collecting greenlet!=0.4.17
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/ac/3f/3af852c44090814ba41b9a4b5bcfd977f49c9fee83d19b65829e164fc11d/greenlet-1.1.3-cp310-cp310-win_amd64.whl (101 kB)
     -------------------------------------- 101.7/101.7 KB 1.5 MB/s eta 0:00:00
Installing collected packages: greenlet, sqlalchemy
Successfully installed greenlet-1.1.3 sqlalchemy-1.4.40


WARNING: You are using pip version 22.0.4; however, version 22.2.2 is available.
You should consider upgrading via the 'D:\Software\Python310\python.exe -m pip install --upgrade pip' command.

1.4.1 老版本

import pymysql
conn = pymysql.connect(host='127.0.0.1', user='root', password='wangpeng', database='mydatabase', charset='utf8')
datas = pd.read_sql('select * from books', con=conn)
datas
D:\Software\anaconda3\lib\site-packages\pandas\io\sql.py:761: UserWarning: pandas only support SQLAlchemy connectable(engine/connection) ordatabase string URI or sqlite3 DBAPI2 connectionother DBAPI2 objects are not tested, please consider using SQLAlchemy
  warnings.warn(
id name price
0 1 数据结构 45.0
1 2 操作系统 48.0
2 3 计算机网络 56.0
3 4 计算机组成原理 54.0
4 5 编译原理 65.0

1.4.2 新版本

from sqlalchemy import create_engine
sql_statement = 'select * from books'
engine = create_engine('mysql+pymysql://root:wangpeng@localhost:3306/mydatabase?charset=utf8')
datas = pd.read_sql(sql_statement, engine)
datas
id name price
0 1 数据结构 45.0
1 2 操作系统 48.0
2 3 计算机网络 56.0
3 4 计算机组成原理 54.0
4 5 编译原理 65.0

二、DataFrame和Series

2.1 Series

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

2.1.1 默认创建Series(默认索引)

s1 = pd.Series(['hello', 1, True, 3.5])
s1  # 左侧为索引,右侧为数据

0    hello
1        1
2     True
3      3.5
dtype: object
# 获取索引
s1.index
RangeIndex(start=0, stop=4, step=1)
# 获取数据
s1.values
array(['hello', 1, True, 3.5], dtype=object)

2.1.2 创建指定索引的Series

s2 = pd.Series(['a', False, 5], index=[1, 2, 3])
s2

1        a
2    False
3        5
dtype: object

2.1.3 使用Python字典创建Series

dict_one = {'name': 'wangpeng', 'age': 18, 'province': 'JiangXi'}
s3 = pd.Series(dict_one)
s3

name        wangpeng
age               18
province     JiangXi
dtype: object
# 获取值
s3['name']
'wangpeng'
# 获取多个值
s3[['name', 'age']]

name    wangpeng
age           18
dtype: object
type(s3['name'])
str

2.2 DataFrame

DataFrame是一个表格型的数据结构

  • 每列可以是不同的值类型(数值、字符串、布尔值等)
  • 既有行索引index,也有列索引columns
  • 可以被看做由Series组成的字典

2.2.1 根据多个字典序列创建DataFrame

datas = {
    'State': ['New York', 'Michigan', 'Nevada', 'California', 'Florida'],
    'GDP': [14406, 13321, 10003, 12563, 15364]
}
df = pd.DataFrame(datas)
df
State GDP
0 New York 14406
1 Michigan 13321
2 Nevada 10003
3 California 12563
4 Florida 15364
df.dtypes

State    object
GDP       int64
dtype: object
df.columns
Index(['State', 'GDP'], dtype='object')
df.index
RangeIndex(start=0, stop=5, step=1)

2.3 从DataFrame中查询出Series

  • 如果只查询一行、一列,返回的是pd.Series
  • 如果查询多行、多列,返回的是pd.DataFrame

2.3.1 查询列

# 查询单列,也就是一个Series
df['State']
0      New York
1      Michigan
2        Nevada
3    California
4       Florida
Name: State, dtype: object
# 查询多列,也就是一个DataFrame
df[['State', 'GDP']]
df.loc[0]
State    New York
GDP         14406
Name: 0, dtype: object
# 返回索引0到3行的数据,包含第三行
df.loc[0:3]
State GDP
0 New York 14406
1 Michigan 13321
2 Nevada 10003
3 California 12563
# 取所有行,限制列(保留GDP列)
df.loc[:, 'GDP']
0    14406
1    13321
2    10003
3    12563
4    15364
Name: GDP, dtype: int64
# 取所有行,限制列(保留State列)
df.loc[:, 'State']
0      New York
1      Michigan
2        Nevada
3    California
4       Florida
Name: State, dtype: object
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas入门 的相关文章

随机推荐

  • 第三方支付 -----支付宝支付流程

    大家都知道 第三方支付 已经普遍都在使用 所以我今天就说一下支付宝的支付流程 首先进入支付宝平台 点击开发中心 研发服务 获得沙盒的appid以及商户公钥和支付宝公钥 然后利用秘钥生成软件生成私钥和公钥 建立keys文件夹 将私钥和公钥文件
  • 将日期字符串转成LocalDateTime

    如果直接用LocalDateTime parse将日期字符串 yyyy MM dd 转成LocalDateTime会导致报错 所以我这里提供了将日期字符串转成LocalDateTime的方法 仅供参考 如有更好方式 欢迎大家分享 impor
  • WSL2报错:nvidia-smi Command ‘nvidia-smi‘ not found, but can be installed with:

    这里写自定义目录标题 找了很多方法 解决 分割线 WSL2部署 找了很多方法 在社区找了很多方法 结果在b站评论区找到了一个方法给解决了 原本一开始有人说是驱动版本问题 我nvcc V是ok的 但是nvidia smi一直报错 Comman
  • LaTeX排版(一):字体、页眉页脚、页边距、行距的设置

    目录 字体设置 布局设置 页眉页脚设置 行距的设置 其他 字体设置 字体设置需要用到宏包fontspec 需要在导言区添加如下指令 usepackage fontspec 中英文字体都可以分为如下3种 正文字体族 无衬线字体族 打字机字体族
  • 十进制转十六进制 C++

    目录 题目描述 思路分析 AC代码 题目描述 编写一个函数 传入一个十进制的正整数 将十进制整数转换为十六进制的字符串并返回 十六进制字符串中的字母全部大写 输入描述 键盘输入一个十进制的正整数 输出描述 输出该十进制整数转换后的十六进制字
  • 硬盘柱面损坏怎么办_最靠谱的机械硬盘坏道修复工具一:DiskGenius

    DiskGenius是一款硬盘分区 数据修复软件 DiskGenius的功能非常丰富 然而很多时候 我们都只是用DiskGenius来分区硬盘 对硬盘进行一些常规性能的操作 常常忽略了DiskGenius最重要的一个功能 那就是机械硬盘的坏
  • vue 按钮权限

    项目中按钮的操作权限我们可以直接使用 v if 判断就行 但是每个页面都要写一堆判断不太雅观 所以 可以写一个全局函数或者自定义指令 两种方式优雅的实现 一 全局函数 一般在登陆接口中后台就把权限列表信息提供了 可以把他存到缓存或者vuex
  • 从零开始完成YOLOv5目标识别(三)用PyQt5展示YOLOv5的识别结果

    往期内容 从零开始完成Yolov5目标识别 二 制作并训练自己的训练集 从零开始完成Yolov5目标识别 一 准备工作 目录 往期内容 一 项目框架 二 核心内容 1 QtDesign设计 2 检测部分 2 1 导包 2 2 main py
  • js-image-compressor 图片压缩插件

    1 安装插件 npm i js image compressor 2 引入 import ImageCompressor from js image compressor 3 使用 compressionImage file return
  • 加入ehcache后,系统出现内存泄漏,解决办法

    最近在系统中 加入缓存ehcache 但发现 每隔一天 服务器就会报出内存溢出 问题严重 后来在网上查资料发现 一篇解释的网文 spring中的提供了一个名为org springframework web util Introspector
  • Android从源码分析RecyclerView四级缓存复用机制一(缓存ViewHolder)

    RecyclerView相比较ListView先说多了多布局和缓存 目前已经在Android列表中大量普及使用 面试中也经常问到 所以对于RecyclerView的四级缓存机制也叫复用回收机制的分析很有必要 这部分很重要请 全村人来听 先说
  • Understanding Dataset Design Choices for Multi-hop Reasoning

    Understanding Dataset Design Choices for Multi hop Reasoning NAACL 2019 阅读笔记 记录论文中几个有趣的实验 1 单句包含答案实验 首先做了一个简单的实验 给模型输入一个
  • 游戏盾原理和优势

    什么是游戏盾呢 游戏盾是DDoS高防IP产品系列中针对游戏行业的安全解决方案 游戏盾专为游戏行业定制 针对性解决游戏行业中复杂的DDoS攻击 游戏CC攻击等问题 目前以对抗的形式存在的高防产品形态 也就是防御带宽要大于攻击者的流量 游戏盾有
  • 最大熵算法及简单例子

    最近在学模式识别 正在看Introduction to Pattern Recognition这本书 挺不错的一本书 好 下面和大家一起来学习最大熵算法 首先 最大熵算法是干什么的呢 一般是用来估计一个分布 至于把分布估计出来之后用来干什么
  • 程序员必备的画图工具

    作者 CUGGZ 来源 前端充电宝 XMind 是一个跨平台的思维导图软件 具有多种结构样式 除了普通的思维导图 还包括树形图 逻辑图 鱼骨图 时间轴 树状表格等等 不同的结构样式可以自由组合混用 同时支持一键更换结构样式 最近经常有小伙伴
  • 编译安装 Nginx 提示:/configure: error: C compiler cc is not found

    问题产生背景 反向代理服务器需要增加探活功能 需要对前置nginx 进行重新编译安装第三方模块 发现在编译安装配置时候一直过不去 百度查询过很多解决办法 基本都是没有安装好编译环境之类的说法 但是在确定编译环境所涉及的包全部都安装以后 还是
  • idea必备开发插件.

    1 lombok 支持lombok的各种注解 从此不用写getter setter这些 可以把注解还原为原本的java代码 非常方便 https plugins jetbrains com plugin 6317 lombok plugin
  • 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)-RC-u5 树与二分图

    2022 RoboCom 世界机器人开发者大赛 本科组 省赛 RC u5 树与二分图 文章目录 2022 RoboCom 世界机器人开发者大赛 本科组 省赛 RC u5 树与二分图 题目描述 输入格式 输出格式 输入样例 输出样例 思路 A
  • 感知机分类学习

    感知机 perceptron 是一种二类分类的线性分类模型 也就是说 使用于将数据分成两类的 并且数据要线性可分的情况 线性可分是指存在一个超平面能够将空间分成两部分 每一部分为一类 感知机的目的就在于找这样的一个超平面 假设输入数据形式为
  • pandas入门

    pandas is a fast powerful flexible and easy to use open source data analysis and manipulation tool 一 读取文本文件中的数据 导入pandas