Python----Pandas

news2024/11/27 6:14:57

目录

Series属性

DataFrame的属性

Pandas的CSV文件

Pandas数据处理


Pandas的主要数据结构是Series(一维数据)与DataFrame(二维数据)

Series属性

Series的属性如下:

属性描述
pandas.Series(data,index,dtype,name,copy)Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。
data: 一组数据(ndarray 类型)
index: 数据索引标签,如果不指定,默认从 0 开始。
dtype: 数据类型,默认会自己判断。
name: 设置名称。
copy: 拷贝数据,默认为 False。

 示例1:

>>> import pandas as pd
>>> a = [1,2,3]
>>> sa = pd.Series(a)
>>> print(sa)
0    1
1    2
2    3
dtype: int64
>>> sa[1]
2
>>> a = ['Google','baidu','wiki']
>>> sa = pd.Series(a,index=['x','y','z'])
>>> print(sa)
x    Google
y     baidu
z      wiki
dtype: object

示例2:

Pandas数据类型包括

•object字符串或混合类型

•int 整型

•float浮点型

•datetime时间类型

•bool布尔型

>>> import numpy as np
>>> import pandas as pd
>>> s = pd.Series(np.random.randn(4),index=['a','b','c','d'])
>>> print(sa)
a   -1.226694
b    0.157971
c    0.022525
d    2.606825
dtype: float64
>>> s[:2] #选取前两条数据
a   -1.226694
b    0.157971
dtype: float64 
>>> s[[1,3]] # 选取第2和第4条数据
b    0.157971
d    2.606825
dtype: float64
>>> s[s<s.mean()] #x小于平均值
a   -1.226694
b    0.157971
c    0.022525
dtype: float64
>>> s['a'] #通过索引值选取元素
 -1.2266936531191652
>>> s[['c','d']] # 多个索引值,注意括号
c    0.022525
d    2.606825
dtype: float64
>>> s = pd.Series(data=['1.2','1.5','2.7','2.3']) 
>>> b = s.astype('float32') # 转换类型
>>> print(b)
0    1.2
1    1.5
2    2.7
3    2.3
dtype: float32

DataFrame的属性

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)

示例:

# 使用列表创建
>>> import pandas as pd
>>> data = [['Google',10],['Baidu',12],['Wiki',13]] #二维列表
>>> df = pd.DataFrame(data, columns=['site','Age'])
>>> print(df)
     site  Age
0  Google   10
1   Baidu   12
2    Wiki   13
# 使用字典创建,其中字典的key为列名
>>> data = {'Site':['Google', 'Baidu','Wiki'],'Age':[10,12,13]}
>>> pf = pd.DataFrame(data)
>>> print(pd)
     Site  Age
0  Google   10
1   Baidu   12
2    Wiki   13

•Pandas 可以使用 loc 属性返回指定行的数据,如果没有设置索引,第一行索引为 0,第二行索引为 1,以此类推:

>>> data = {'calories':[420, 380, 390],'duration':[50,40,45]}
>>> df = pd.DataFrame(data)
>>> print(df.loc[0]) # 返回第一行
calories    420
duration     50
Name: 0, dtype: int64

注意:返回结果其实就是一个 Pandas Series数据。

•可以返回多行数据,使用[[...]]格式,其中...为各行的索引,逗号隔开:

>>> data = {'calories':[420, 380, 390],'duration':[50,40,45]}
>>> df = pd.DataFrame(data)
>>> print(df.loc[[0,1]]) # 返回第一行和第二行
   calories  duration
0       420        50
1       380        40

注意:返回结果其实就是一个 Pandas DataFrame 数据。

# 查看指定列
>>> data = {'calories':[420, 380, 390],'duration':[50,40,45]}
>>> df = pd.DataFrame(data)
>>> print(df['calories']) #一列访问
0    420
1    380
2    390
Name: calories, dtype: int64
>>> print(df[['calories','duration']]) # 多列访问
   calories  duration
0       420        50
1       380        40
2       390        45
# 查看指定行和列
>>> data = {'calories':[420, 380, 390],'duration':[50,40,45]}
>>> df = pd.DataFrame(data)
>>> print(df.loc[0,'calories']) #第0行,calories数值
420
# 可以指定索引值index:
>>> data = {'calories':[420, 380, 390],'duration':[50,40,45]}
>>> df = pd.DataFrame(data, index=['day1','day2','day3'])
>>> print(df)
      calories  duration
day1       420        50
day2       380        40
day3       390        45
# 可以使用loc属性返回指定索引对应到的某一行
>>> print(df.loc['day1'])
calories    420
duration     50
Name: day1, dtype: int64

Pandas的CSV文件

CSV(Comma-Separated Values,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

import pandas as pd
df = pd.read_csv('nba.csv')
print(df.to_string())
# to_string()用于返回DataFrame类型的数据,如果不使用该函数,则输出结果
# 为数据的前面5行和末尾5行,中间部分以...代替

将DataFrame存储为CSV文件

to_csv()方法

import pandas as pd
# 三个字段 name, site, age
nme = ["Google", "Baidu", "Taobao", "Wiki"]
st = ["www.google.com", "www.baidu.com", "www.taobao.com", 
      "www.wikipedia.org"]
ag = [90, 40, 80, 98]
# 字典
dict = {'name': nme, 'site': st, 'age': ag}
df = pd.DataFrame(dict)
# 保存 dataframe
df.to_csv('site.csv')

Pandas数据处理

•使用 head(n) 方法用于读取前面的 n 行,如果不填参数 n ,默认返回 5 行

示例1:

import pandas as pd
df = pd.read_csv('nba.csv')
print(df.head())
输出:
            Name            Team  Number  ... Weight            College     Salary
0  Avery Bradley  Boston Celtics     0.0  ...  180.0              Texas  7730337.0
1    Jae Crowder  Boston Celtics    99.0  ...  235.0          Marquette  6796117.0
2   John Holland  Boston Celtics    30.0  ...  205.0  Boston University        NaN
3    R.J. Hunter  Boston Celtics    28.0  ...  185.0      Georgia State  1148640.0
4  Jonas Jerebko  Boston Celtics     8.0  ...  231.0                NaN  5000000.0

示例2:

import pandas as pd
df = pd.read_csv('nba.csv')
print(df.head(10))
输出:
             Name            Team  Number  ... Weight            College      Salary
0  Avery Bradley  Boston Celtics     0.0  ...  180.0              Texas   7730337.0
1    Jae Crowder  Boston Celtics    99.0  ...  235.0          Marquette   6796117.0
2   John Holland  Boston Celtics    30.0  ...  205.0  Boston University         NaN
3    R.J. Hunter  Boston Celtics    28.0  ...  185.0      Georgia State   1148640.0
4  Jonas Jerebko  Boston Celtics     8.0  ...  231.0                NaN   5000000.0
5   Amir Johnson  Boston Celtics    90.0  ...  240.0                NaN  12000000.0
6  Jordan Mickey  Boston Celtics    55.0  ...  235.0                LSU   1170960.0
7   Kelly Olynyk  Boston Celtics    41.0  ...  238.0            Gonzaga   2165160.0
8   Terry Rozier  Boston Celtics    12.0  ...  190.0         Louisville   1824360.0
9   Marcus Smart  Boston Celtics    36.0  ...  220.0     Oklahoma State   3431040.0

使用 tail(n) 方法用于读取尾部的 n 行,如果不填参数 n ,默认返回 5 行,空行各个字段的值返回 NaN。

示例1:

import pandas as pd
df = pd.read_csv('nba.csv')
print(df.tail())
输出:
              Name       Team  Number Position  ...  Height Weight  College     Salary
453  Shelvin Mack  Utah Jazz     8.0       PG  ...     6-3  203.0   Butler  2433333.0
454     Raul Neto  Utah Jazz    25.0       PG  ...     6-1  179.0      NaN   900000.0
455  Tibor Pleiss  Utah Jazz    21.0        C  ...     7-3  256.0      NaN  2900000.0
456   Jeff Withey  Utah Jazz    24.0        C  ...     7-0  231.0   Kansas   947276.0
457           NaN        NaN     NaN      NaN  ...     NaN    NaN      NaN        NaN

示例2:

import pandas as pd
df = pd.read_csv('nba.csv')
print(df.tail(10))
输出:
               Name       Team  Number  ... Weight   College      Salary
448  Gordon Hayward  Utah Jazz    20.0  ...  226.0    Butler  15409570.0
449     Rodney Hood  Utah Jazz     5.0  ...  206.0      Duke   1348440.0
450      Joe Ingles  Utah Jazz     2.0  ...  226.0       NaN   2050000.0
451   Chris Johnson  Utah Jazz    23.0  ...  206.0    Dayton    981348.0
452      Trey Lyles  Utah Jazz    41.0  ...  234.0  Kentucky   2239800.0
453    Shelvin Mack  Utah Jazz     8.0  ...  203.0    Butler   2433333.0
454       Raul Neto  Utah Jazz    25.0  ...  179.0       NaN    900000.0
455    Tibor Pleiss  Utah Jazz    21.0  ...  256.0       NaN   2900000.0
456     Jeff Withey  Utah Jazz    24.0  ...  231.0    Kansas    947276.0
457             NaN        NaN     NaN  ...    NaN       NaN         NaN

•info() 方法返回表格的一些基本信息(索引、数据类型和内存信息)

示例1:

import pandas as pd
df = pd.read_csv('nba.csv')
print(df.info())

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 458 entries, 0 to 457 #行数,458,行,第一行编号为0

Data columns (total 9 columns): #列数,9

 #   Column    Non-Null Count  Dtype  #各列的数据类型

---  ------    --------------  ----- 

 0   Name      457 non-null    object  #non-null,意思是非空的数

 1   Team      457 non-null    object

 2   Number    457 non-null    float64

 3   Position  457 non-null    object

 4   Age       457 non-null    float64

 5   Height    457 non-null    object

 6   Weight    457 non-null    float64

 7   College   373 non-null    object #college的空值最多

 8   Salary    446 non-null    float64

dtypes: float64(4), object(5)

memory usage: 32.3+ KB

 示例2:

import pandas as pd
df = pd.read_csv('nba.csv')
a = df.sort_values(by='Weight') # 按Weight列数据升序排列
print(a.head().to_string())
输出:
           Name                  Team  Number Position   Age Height  Weight                College     Salary
152      Aaron Brooks         Chicago Bulls     0.0       PG  31.0    6-0   161.0                 Oregon  2250000.0
350     Briante Weber            Miami Heat    12.0       PG  23.0    6-2   165.0  Virginia Commonwealth        NaN
263      Bryce Cotton     Memphis Grizzlies     8.0       PG  23.0    6-1   165.0             Providence   700902.0
359  Brandon Jennings         Orlando Magic    55.0       PG  26.0    6-1   169.0                    NaN  8344497.0
286       Tim Frazier  New Orleans Pelicans     2.0       PG  25.0    6-1   170.0             Penn State   845059.0

print(a[a.Weight > 200].head().to_string()) # Weight列大于200的
输出:
                   Name                  Team  Number Position   Age Height  Weight       College     Salary
47        Isaiah Canaan    Philadelphia 76ers     0.0       PG  25.0    6-0   201.0  Murray State   947276.0
309       Kent Bazemore         Atlanta Hawks    24.0       SF  26.0    6-5   201.0  Old Dominion  2000000.0
226       Rashad Vaughn       Milwaukee Bucks    20.0       SG  19.0    6-6   202.0          UNLV  1733040.0
453        Shelvin Mack             Utah Jazz     8.0       PG  26.0    6-3   203.0        Butler  2433333.0
282  Bryce Dejean-Jones  New Orleans Pelicans    31.0       SG  23.0    6-6   203.0    Iowa State   169883.0 

示例3:

import pandas as pd
df = pd.read_csv('nba.csv')
df['one'] = 1 #增加一个固定值的列
print(df.head().to_string())
输出:
    Name            Team        Number Position   Age Height  Weight            College     Salary  one
0  Avery Bradley  Boston Celtics     0.0       PG  25.0    6-2   180.0              Texas  7730337.0    1
1    Jae Crowder  Boston Celtics    99.0       SF  25.0    6-6   235.0          Marquette  6796117.0    1
2   John Holland  Boston Celtics    30.0       SG  27.0    6-5   205.0  Boston University        NaN    1
3    R.J. Hunter  Boston Celtics    28.0       SG  22.0    6-5   185.0      Georgia State  1148640.0    1
4  Jonas Jerebko  Boston Celtics     8.0       PF  29.0   6-10   231.0                NaN  5000000.0    1

print(a[a.Weight > 200].head().to_string()) # Weight列大于200的
输出:
                   Name                  Team  Number Position   Age Height  Weight       College     Salary
47        Isaiah Canaan    Philadelphia 76ers     0.0       PG  25.0    6-0   201.0  Murray State   947276.0
309       Kent Bazemore         Atlanta Hawks    24.0       SF  26.0    6-5   201.0  Old Dominion  2000000.0
226       Rashad Vaughn       Milwaukee Bucks    20.0       SG  19.0    6-6   202.0          UNLV  1733040.0
453        Shelvin Mack             Utah Jazz     8.0       PG  26.0    6-3   203.0        Butler  2433333.0
282  Bryce Dejean-Jones  New Orleans Pelicans    31.0       SG  23.0    6-6   203.0    Iowa State   169883.0 

•drop()方法:通过指定标签名称和响应的轴,或者直接指定索引或列名称,删除行或列

属性描述

pandas.DataFrame.drop(labels=None, axis=0,index=None,columns=None,

level=None,inplace=False,errors=’raise’)

通过指定标签名称和相应的轴,或直接指定索引或列名称,删除行或列。
labels 单个标签或者标签列表
axis=0 默认 删除index; axis=1 指定删除列
inplace=True 修改原数据
level 针对多重索引 指定级别
index 指定索引
columns 指定列名

示例:

>>>import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.arange(12).reshape(3,4),columns=['a','b','c','d'])
输出:
   a  b   c   d
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
#删除行
>>> df.drop(2)
   a  b  c  d
0  0  1  2  3
1  4  5  6  7
>>> df.drop([0,1])
   a  b   c   d
2  8  9  10  11

>>>import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.arange(12).reshape(3,4),columns=['a','b','c','d'])
输出:
# 删除列
>>> df.drop('a', axis=1)
   b   c   d
0  1   2   3
1  5   6   7
2  9  10  11
>>> df.drop(['b','c'], axis=1)
   a   d
0  0   3
1  4   7
2  8  11
>>> df.drop(columns=['b','c']) # 同上
   a   d
0  0   3
1  4   7
2  8  11

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1287039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

轨道交通故障预测与健康管理PHM系统的应用

轨道交通是现代城市中不可或缺的交通方式&#xff0c;它为人们提供了快速、高效和可靠的出行方式。然而&#xff0c;由于轨道交通系统的复杂性和高负荷运行&#xff0c;设备故障和运营中断问题时有发生。为了提高轨道交通系统的可靠性和安全性&#xff0c;故障预测与健康管理&a…

Java的TPC通信

TPC通信-快速入门 TPC通信-客户端开发 TPC通信-服务端开发 TPC通信-多发多收 客户端 服务端 TPC通信-支持与多个客户端同时通信 服务端 独立线程对象

看懂lscpu的输出

文章目录 1. lscpu1.1 Architecture1.2 逻辑核心数1.3 缓存1.4 CPU型号1.5 NUMA架构1.5.1 CPU多核架构1.5.2 多CPU Socket架构 2. cat /proc/cpuinfo2.1 关键字段 1. lscpu 通过lscpu查看当前系统的CPU信息。 [hadoopserver3 ~]$ lscpuArchitecture: x86_64 …

使用晶振遇到的两个问题

并联电阻的问题 在一些方案中&#xff0c;晶振并联1MΩ电阻时&#xff0c;程序运行正常&#xff0c;而在没有1MΩ电阻的情况下&#xff0c;程序运行有滞后及无法运行现象发生。 原因分析&#xff1a; 在无源晶振应用方案中&#xff0c;两个外接电容能够微调晶振产生的时钟频率…

Spring容器启动过程中的自定义操作插口汇总

目录标题 PostConstruct注解EventListener方式InitializingBean的afterPropertiesSet方法实现ApplicationRunner接口重写run方法实现AplicationContextAware接口重写setApplicationContext实现ServletContextListener接口contextInitialized方法实现ServletContextAware接口set…

性能测试流程、指标及常见问题!

1.介绍性能测试流程 a.性能需求分析&#xff08;评审&#xff09; 基于接口或者场景&#xff08;全链路&#xff09;的性能测试指标&#xff0c;一般是tps&#xff08;每秒事务数&#xff0c;这里都是通过的事务&#xff09;及art&#xff08;平均响应时间&#xff09; b.了解…

基于ssm vue的风景文化管理平台源码和论文

摘 要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;基于vue的木里风景文化管理平台也不例外&#xff0c;但目前国内的市场仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对…

2-1、地址加法器CS:IP

语雀原文链接 文章目录 1、CPU组成2、通用寄存器16位寄存器的存储16位寄存器兼容8位word 和 byte进位问题 3、地址加法器不同的段地址和偏移地址表示同一个物理地址偏移地址的范围一个段的起始地址一定是16的倍数 4、CS:IPCS IP工作过程jmp修改CS:IP 5、DS和[address]DS和[add…

四.多表查询

多表查询 1.一个案例引发的多表连接1.1案例说明1.2 笛卡尔积&#xff08;或交叉连接&#xff09;的理解1.3案例分析与问题解决 2.多表查询分类讲解分类1&#xff1a;等值连接vs非等值连接分类2&#xff1a;自连接vs非自连接分类3&#xff1a;内连接vs外连接 3.SQL99语法实现多表…

记录华为云服务器(Linux 可视化 宝塔面板)-- Nginx配置出现500错误记录

文章目录 1、路由配置&#xff0c;访问显示500如有启发&#xff0c;可点赞收藏哟~ 1、路由配置&#xff0c;访问显示500 错误如图显示500 解决思路如下 1、先查看错误日志 错误日志存放位置 提示 /login配置的文件有问题 开始配置如下图 修改前 修改后&#xff08;即在/l…

题目:小明的彩灯(蓝桥OJ 1276)

题目描述&#xff1a; 解题思路&#xff1a; 一段连续区间加减&#xff0c;采用差分。最终每个元素结果与0比较大小&#xff0c;比0小即负数输出0。 题解&#xff1a; #include<bits/stdc.h> using namespace std;using ll long long; const int N 1e5 10; ll a[N],…

深度学习之网络优化与正则化

视频链接&#xff1a;7.1 神经网络优化的特点_哔哩哔哩_bilibili 神经网络优化的特点 网络优化的难点 &#xff08;1&#xff09;网络结构差异大&#xff1a;不同模型之间的结构差异大——没有通用的优化算法、超参数多 &#xff08;2&#xff09;非凸优化问题&#xff1a;…

gitee上合并分支

点击pull requests 这个合并代码的位置找了半天没有找到&#xff0c;最后还是搜到才知道

华为云软件冗余依赖智能消除技术Slimming取得重大突破,相应文章已被软工顶会ICSE 2024录用

由于构建工具对软件库的自动化配置管理&#xff0c;使得现代软件项目在版本演化的过程中&#xff0c;引入大量的第三方软件库&#xff0c;依赖树结构日益臃肿。然而&#xff0c;实际上很多引入的软件库并未被真正使用。臃肿的依赖在资源受限的设备上将严重影响代码的性能、增加…

C++智能指针及简单实现

C智能指针 堆内存、栈内存与静态内存静态内存栈内存堆内存 动态内存管理new、delete运算符智能指针实现智能指针 shared_ptr智能指针的线程安全问题解决 unique_ptrweak_ptr循环引用 思维导图本模块思路 动态内存管理 - cppreference.com 堆内存、栈内存与静态内存 静态内存 …

会声会影2024购买多少钱 会声会影在哪里购买

掌握视频编辑技术&#xff0c;能为我们的工作和生活带来很多帮助。例如&#xff1a;将我们精心编辑的视频&#xff0c;上传到抖音、快手等平台进行变现&#xff1b;通过天马行空的视频创意&#xff0c;摇身一变成为B站up主。因此&#xff0c;拥有一款像会声会影这样的视频编辑软…

ATFX汇市:澳洲联储12月决议维持基准利率不变,AUDUSD短线大跌

ATFX汇市&#xff1a;12月5日&#xff0c;澳洲联储利率决议结果显示&#xff0c;将现金利率目标维持在4.35%不变 金融衍生品结算余额的支付利率维持在4.25%不变&#xff0c;符合市场预期。政策声明中提到&#xff1a;更加确定通货膨胀将会在合理的时间内返回目标&#xff1b;劳…

8.HTTP工作原理

HTTP是什么 HTTP工作原理 HTTP协议的请求类型和响应状态码 总结 1.HTTP是什么 HTTP超文本传输协议就是在一个网络中上传下载文件的一套规则 2.HTTP工作原理 HTTP超文本传输协议的本质是TCP通信&#xff0c;链接—>请求—>响应—>断开 3.HTTP协议的请求类型和响应状…

深入理解强化学习——马尔可夫决策过程:占用度量-[基础知识]

分类目录&#xff1a;《深入理解强化学习》总目录 文章《深入理解强化学习——马尔可夫决策过程&#xff1a;贝尔曼期望方程-[基础知识]》中提到&#xff0c;不同策略的价值函数是不一样的。这是因为对于同一个马尔可夫决策过程&#xff0c;不同策略会访问到的状态的概率分布是…

ssm的网上奶茶店系统(有报告)。Javaee项目。

演示视频&#xff1a; ssm的网上奶茶店系统&#xff08;有报告&#xff09;。Javaee项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringMvc Mybat…