python 之 pandas数据处理

news2024/9/25 21:28:37

目录

一:读取文件

二:查看数据

三:获取数据

四:按标签选择

五:按照位置选择

六:布尔索引

七:缺失值


一:读取文件

read_csv 加载文件

df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)

二:查看数据

查看头部数据 head

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.head())
    a   b     c  label
0  45   2   9.0      1
1  21  17   5.0      1
2  54   9  11.0      1
3  39   0   NaN      1
4   5   2  57.0      2

查看尾部数据  tail

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.tail())
    a   b     c  label
6   6   4  21.0      2
7   7  46   4.0      3
8   9  39   8.0      3
9   9  38  17.0      3
10  2   3  55.0      2

查看索引   index

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.index)
RangeIndex(start=0, stop=11, step=1)

查看列名  columns

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.columns)
Index(['a', 'b', 'c', 'label'], dtype='object')

describe() 可以快速查看数据的统计摘要 

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.describe())
               a          b          c      label
count  11.000000  11.000000  10.000000  11.000000
mean   18.181818  14.727273  25.200000   1.909091
std    18.845786  17.613012  24.003703   0.831209
min     2.000000   0.000000   4.000000   1.000000
25%     5.500000   2.000000   8.250000   1.000000
50%     9.000000   4.000000  14.000000   2.000000
75%    30.000000  27.500000  46.500000   2.500000
max    54.000000  46.000000  65.000000   3.000000

数据转置         .T

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.T)
          0     1     2     3     4     5     6     7     8     9    10
a      45.0  21.0  54.0  39.0   5.0   3.0   6.0   7.0   9.0   9.0   2.0
b       2.0  17.0   9.0   0.0   2.0   2.0   4.0  46.0  39.0  38.0   3.0
c       9.0   5.0  11.0   NaN  57.0  65.0  21.0   4.0   8.0  17.0  55.0
label   1.0   1.0   1.0   1.0   2.0   2.0   2.0   3.0   3.0   3.0   2.0

三:获取数据

选择单列,产生 Series,与 df.a 等效:  如下 df['a']

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df['a'])
0     45
1     21
2     54
3     39
4      5
5      3
6      6
7      7
8      9
9      9
10     2
Name: a, dtype: int64

用[ ]切片行             如下 df[0:3]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df[0:3])
    a   b     c  label
0  45   2   9.0      1
1  21  17   5.0      1
2  54   9  11.0      1

四:按标签选择

用标签选择多列数据            如下 df.loc[:,['a','b']]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.loc[:, ['a', 'b']])
     a   b
0   45   2
1   21  17
2   54   9
3   39   0
4    5   2
5    3   2
6    6   4
7    7  46
8    9  39
9    9  38
10   2   3

标签切片,包含行与列结束点     如下  df.loc['38':'9', ['a', 'b']]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.loc['38':'9', ['a', 'b']])
    a   b
4   5   2
5   3   2
6   6   4
7   7  46
8   9  39
9   9  38
10  2   3

五:按照位置选择

用整数位置选择        如下  df.iloc[3]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.iloc[3])
a        39.0
b         0.0
c         NaN
label     1.0
Name: 3, dtype: float64

类似numpy/python,用整数切片         如下  df.iloc[3:5, 0:2]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.iloc[3:5, 0:2])
    a  b
3  39  0
4   5  2

类似numpy/python,用整数列表按位置切片   如下 df.iloc[[1, 2, 4], [0, 2]]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.iloc[[1, 2, 4], [0, 2]])
    a     c
1  21   5.0
2  54  11.0
4   5  57.0

显式整行切片       如下 df.iloc[1:3, :]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.iloc[1:3, :])
    a   b     c  label
1  21  17   5.0      1
2  54   9  11.0      1

显示整列切片         如下 df.iloc[:, 1:3]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.iloc[:, 1:3])
     b     c
0    2   9.0
1   17   5.0
2    9  11.0
3    0   NaN
4    2  57.0
5    2  65.0
6    4  21.0
7   46   4.0
8   39   8.0
9   38  17.0
10   3  55.0

显示提取值                             如下 df.iloc[1, 1] 

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.iloc[1, 1])
17

快速访问标量,与上述方法等效     如下 df.iat[1, 1]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df.iat[1, 1])
17

值选择                       如下 at

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# 值选择
print(df.at[1, 'b'])
17

六:布尔索引

用单列的值选择数据         如下 df[df.a > 0]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df[df.a > 0])
     a   b     c  label
0   45   2   9.0      1
1   21  17   5.0      1
2   54   9  11.0      1
3   39   0   NaN      1
4    5   2  57.0      2
5    3   2  65.0      2
6    6   4  21.0      2
7    7  46   4.0      3
8    9  39   8.0      3
9    9  38  17.0      3
10   2   3  55.0      2

选择DataFrame里满足条件的值         如下 df[df > 0]

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
print(df[df > 0])
     a     b     c  label
0   45   2.0   9.0      1
1   21  17.0   5.0      1
2   54   9.0  11.0      1
3   39   NaN   NaN      1
4    5   2.0  57.0      2
5    3   2.0  65.0      2
6    6   4.0  21.0      2
7    7  46.0   4.0      3
8    9  39.0   8.0      3
9    9  38.0  17.0      3
10   2   3.0  55.0      2

七:缺失值

Pandas 主要用 np.nan 表示缺失数据。 计算时,默认不包含空值。详见缺失数据。

重建索引(reindex)可以更改、添加、删除指定轴的索引,并返回数据副本,即不更改原数据。

找到缺失值      如下 df.isnull().sum()

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# 找到缺失值
print(df.isnull().sum())
a        0
b        0
c        1
label    0
dtype: int64

缺失值,均值填充               如下 df['c'].fillna(df.c.mean())

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# 找到缺失值
# print(df.isnull().sum())
# 均值填充
df['c'].fillna(df.c.mean())
print(df)
     a   b     c  label
0   45   2   9.0      1
1   21  17   5.0      1
2   54   9  11.0      1
3   39   0   NaN      1
4    5   2  57.0      2
5    3   2  65.0      2
6    6   4  21.0      2
7    7  46   4.0      3
8    9  39   8.0      3
9    9  38  17.0      3
10   2   3  55.0      2

需要inplace=True,替换原来的数据    如下 df['c'].fillna(df.c.mean(), inplace=True)

import numpy as np
import pandas as pd

# 列名
columns = ['a', 'b', 'c', 'label']
# 1 加载文件
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# 找到缺失值
# print(df.isnull().sum())
# 均值填充
df['c'].fillna(df.c.mean(), inplace=True)
print(df)
     a   b     c  label
0   45   2   9.0      1
1   21  17   5.0      1
2   54   9  11.0      1
3   39   0  25.2      1
4    5   2  57.0      2
5    3   2  65.0      2
6    6   4  21.0      2
7    7  46   4.0      3
8    9  39   8.0      3
9    9  38  17.0      3
10   2   3  55.0      2

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

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

相关文章

SPRING-了解2-XML

两种bean Spring中有两种bean:一种普通bean,另外一种工厂bin (Factory Bin&#xff0c;注意不是前面说的BeanFactory类) 普通Bean:xml中定义什么类型返回的就是什么类型 <bean id"book" class"com.i7i8i9.spring5.collectiontype.Book"> xml中clas…

Linux 应用基础 Framebuffer应用编程

文章目录前言一、了解Framebuffer二、了解LCD1.LCD的操作原理2.LCD坐标三. Framebuffer 程序分析1. 打开设备&#xff1a;&#xff08;open&#xff09;2. 获取LCD参数 : ( ioctl )3. 映射 framebuffer: ( mmap )四. 描点函数&#xff1a; &#xff08; lcd_put_pixel &#xf…

【OpenFOAM】-olaFlow-算例3- currentWaveFlume

算例路径&#xff1a; olaFlow\tutorials\currentWaveFlume 算例描述&#xff1a; 波流耦合模拟&#xff0c;该算例提供了四种工况&#xff1a;(1) Waves and forward current&#xff0c;(2) Waves and backward current&#xff0c;(3) Forward current only&#xff0c;(4) …

【LSTM预测】基于卷积神经网络结合双向长短时记忆CNN-BiLSTM(多输入单输出)数据预测含Matlab源码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

【云服务器 ECS 实战】一文掌握负载均衡服务原理及配置方法

一、负载均衡基本原理概述协议/端口轮询策略会话保持二、云服务器 ECS 负载均衡相关配置协议&监听配置后端服务器配置健康检查配置测试在上期文章中&#xff0c;介绍了负载均衡的概述及优势&#xff0c;并详细演示了阿里云服务器负载均衡服务的选型与购买配置。本期文章我们…

字节最新秋招面试题泄露,“背完”这些你也可以拿到字节offer

Java 一面基本上都是基础题&#xff0c;同样是 CURD 的活&#xff0c;谁更熟练要谁&#xff0c;比如下面这些面试题&#xff0c;八股文越熟练越容易通过 Java 面试。下面会给大家详解的介绍一下每个技术点的必问问题&#xff01; 一、Java 基础 1.JDK动态代理和CGLIB动态代理的…

12月18日第壹简报,星期日,农历十一月廿五

12月18日第壹简报&#xff0c;星期日&#xff0c;农历十一月廿五1. 官方&#xff1a;预计我国今年经济总量超过120万亿元&#xff0c;明年经济有望总体回升。2. 多地血库告急&#xff0c;两部门修改“指引”&#xff1a;最后一次新冠核酸或抗原阳性结果7天后可献血。3. 北京&am…

Wireshark 实验

本部分按照数据链路层、网络层、传输层以及应用层进行分类&#xff0c;共有 10 个实验。需要使用协议分析软件 Wireshark 进行&#xff0c;请根据简介部分自行下载安装。 准备 请自行查找或使用如下参考资料&#xff0c;了解 Wireshark 的基本使用&#xff1a; 选择对哪块网…

DropBox系列-打造车载系统APM框架

前言&#xff1a; 作者本人负责公司的APM监控模块&#xff0c;因为工作的原因&#xff0c;对ANR&#xff0c;crash等流程研究的比较多&#xff0c;最近在打造APM监控平台的时候&#xff0c;顺带对DropBox的实现原理进行了一定的学习和研究&#xff0c;发现了一些妙用&#xff…

【DELM回归预测】基于海鸥算法改进深度学习极限学习机SOA-DELM实现数据回归预测附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

基于java+springmvc+mybatis+vue+mysql的疫情时期药物管理系统

项目介绍 前端页面&#xff1a; 功能&#xff1a;首页、医生、药品信息、药品资讯、个人中心、后台管理、在线客服 管理员后台管理页面&#xff1a; 功能&#xff1a;首页、个人中心、用户管理、医生管理、药品类别管理、药品信息管理、药品购买管理、在线咨询管理、系统管理…

Python图像处理【4】图像线性变换

图像线性变换0. 前言1. 2D 线性几何变换数学原理2. 使用 scipy.ndimage 旋转图像3. 使用 Numpy 翻转图像4. 使用 scipy.ndimage 实现仿射变换4.1 仿射变换原理4.2 实现仿射变换小结系列链接0. 前言 图像线性变换是图像处理中的基本运算&#xff0c;通常用于调整图像的视觉效果…

【Spring Cloud】如何安装与配置Nacos注册中心?

本期目录1. Nacos介绍2. Nacos安装2.1 Windows安装3. 配置Nacos3.1 引入依赖3.2 修改配置文件3.3 启动并测试1. Nacos介绍 Nacos 是阿里巴巴的产品&#xff0c;使用 Java 语言开发。比 Eureka 功能更丰富&#xff0c;除了可以作注册中心&#xff0c;还可以作配置中心。 2. Nac…

【Java开发】Staffjoy 02 :系统架构设计

本文主要对 Staffjoy 项目的架构做一个介绍和衍生&#xff0c;包括数据模型、各服务接口模型及框架选择等&#xff0c;希望能让大家对于项目有个整体的把握和判断&#xff0c;本文最后也列举了 Dubbo、Spring Cloud 和 K8s 三种微服务框架的异同~ 目录 1 架构设计 1.1 总体架…

毕业设计 基于PID控制的智能平衡车 - stm32 物联网 单片机【超详细】

文章目录0 前言1 课题背景2 设计内容3 设计方案3.1 设计思路3.3 硬件设计3.4 软件设计3.4.1 关键技术 - PID控制算法3.4.2 关键技术 - 倾角估计算法3.4.3 关键技术 - 直立控制算法3.4.4 速度控制3.4.5 方向控制4 视频演示5 最后0 前言 &#x1f525; 这两年开始毕业设计和毕业…

长短时记忆网络(LSTM)负荷预测项目(matlab)

目录 1. LSTM介绍 2. 数据集准备及预处理 3. LSTM模型搭建与训练 4. 预测模型测试 1. LSTM介绍 长短期记忆网络 LSTM&#xff08;long short-term memory&#xff09;是 RNN 的一种变体&#xff0c;其核心概念在于细胞状态以及“门”结构。细胞状态相当于信息传输的路径…

每日一道LeetCode(一):两数之和

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

刷完这1000道JAVA面试题,让你成功逆袭上岸

内容涵盖&#xff1a;Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈。 由于整个笔记比较全面&#xff0c;内容相当的多 &#xff0c;这里仅展示面经中的面试真题&#xff0…

Keras深度学习实战(41)——语音识别

Keras深度学习实战&#xff08;41&#xff09;——语音识别0.前言1. 模型与数据集分析1.1 数据集分析1.2 模型分析2. 语音识别模型2.1 数据加载与预处理2.2 模型构建与训练小结系列链接0.前言 语音识别(Automatic Speech Recognition, ASR&#xff0c;或称语音转录文本)使声音…

openssl加密base64编码

openssl OpenSSL 是一个安全套接字层密码库&#xff0c;囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议&#xff0c;并提供丰富的应用程序供测试或其它目的使用。 首先&#xff0c;要安装 openssl: centos命令: sudo yum install openssl-devel ubuntu命令&#x…