python处理数据内存不够,python处理数据安全吗

大家好,小编为大家解答python处理数据索引的常见方法的问题。很多人还不知道python处理数据内存不够,现在让我们一起来看看吧!

目录

1.数据表的基本信息查看 

 2.查看数据表的大小

 3.数据格式的查看

 4、查看具体的数据分布

二、缺失值处理

1.缺失值检查

2.缺失值删除 

3、缺失值替换/填充

三、重复值处理

1、发现重复值

四、异常值的检测与处理

 1.检测异常值

 2.处理异常值

五、数据类型转换

六、索引设置

1.添加索引

2.更改索引 

3.重命名索引 

七、其他

1、大小写转换

2、数据修改与替换

3、数据删除


一、熟悉数据

1.数据表的基本信息查看       

        关键技术:使用info0方法查看数据基本类型在该例中,首先使用pandas库中的read csv方法导入sales.csv文件,然后使用info0方法,查看数据的基本信息,代码及输出结果如下: 

import pandas as pd
database=pd.read_csv('../data/order_train2.csv')#导入数据
database.info()

 2.查看数据表的大小

        关键技术:使用pandas库中DataFrame对象的shape()方法,输出行数列数。 

database.shape()

 3.数据格式的查看

(1)数据类型查看

        关键技术:type()方法

type(database)

  

(2)查看数据类型是字符串还是数字格式

        关键技术:dtype属性和dtypes属性,对于series数据可以用dtype查看,对于dataframe数据可以用dtypes查看

database.dtypes

 4、查看具体的数据分布

        在进行数据分析时,常常需要对对数据的分布进行初步分析,包括统计数据中各元素的个数,均值、方差、最小值、最大值和分位数怎样用python画弧形花瓣。

        关键技术:describe0函数。在做数据分析时,常常需要了解数据元素的特征describe0函数可以用于描述数据统计量特征,其返回值count表示、mean表示数据的平均值、std表示数据的标准差、min表示数据的最小值、max表示数据的最大值、25%、50%、75%分别表示数据的一分位、二分位、三分位数。

database.describe()

二、缺失值处理

1.缺失值检查

        关键技术:isnull0方法。isnull0函数返回值为布尔值,如果数据存在缺失值,返回True;否则,返回False。

database.isnull()#数据量少时
database.isnull().sum().sort_values(ascending=False).reset_index()#数据量多时

2.缺失值删除 

         关键技术:dropna0方法。dropna()方法用于删除含有缺失值的行

database.dropna()

        当某行或某列值都为NaN时,才删除整行或整列。

        关键技术:dropna0方法的how参数

database.dropna(how='all',axis=0) #当整行都为Nan值时删除整行

        当某行有一个数据为NaN时,就删除整行和当某列有一个数据为NaN时就删除整列。

        关键技术: dropna(方法的how参数dropna(how=any’)。

database.dropna(how='any',axis=0) #当整行至少存在一个Nan值时删除整行

3、缺失值替换/填充

        对于数据中缺失值的处理,除了进行删除操作外,还可以进行替换和填充操作如均值填补法,近邻填补法,插值填补法,等等。本小节介绍填充缺失值的fillna()方法。

        (1)[例]在df数据中,利用各列值的均值填补缺失数据,该如何用Python实现?

        关键技术: df.fillna()方法

        在该案例中,将df数据中的各列值的均值作为参数,进行数据填充,代码及结果如下:

import pandas as pd
df=pd.read_csv('data.csv')#导入数据
df.fillna(df.mean())

         (2)[例]使用近邻填补法,即利用缺失值最近邻居的值来填补数据,对df数据中的缺失值进行填补,这种情况该如何实现?

        关键技术: fillna()方法中的method参数

        在本案例中,可以将fillna()方法的method参数设置为bfill,来使用缺失值后面的数据进行填充。代码及运行结果如下:

df.fillna(method='bfill')

        (3)[例]若使用缺失值前面的值进行填充来填补数据,这种情况又该如何实现?

        本案例可以将fillna()方法的method参数设置设置为ffill,来使用缺失值前面的值进行填充。代码及运行结果如下:

df.fillna(method='ffill')

        (4)[例]请利用二次多项式插值法对df数据中item2列的缺失值进行填充

        关键技术: interpolate方法及其order参数。

        在该案例中,将interpolate方法中的参数order设置为2即可满足要求。具体代码及运行结果如下: 

df['item2'].interpolate(method="polynomial",order=2)

         (5)[例]请使用Python完成对df数据中item2列的三次样条插值填充

        关键技术:三次样条插值,即利用一个三次多项式来逼近原目标函数,然后求解该三次多项式的极小点来作为原目标函数的近似极小点。

        在该案例中,将interpolate方法的method参数设置为spline,将order参数设置为3。具体代码及运行结果如下:

df['item2'].interpolate(method="spline",order=3)

三、重复值处理

1、发现重复值

        在数据的采集过程中,有时会存在对同一数据进行重复采集的情况,重复值的存在会对数据分析的结果产生不良影响,因此在进行数据分析前,对数据中的重复值进行处理是十分必要的。

        (1)(例]请使用Python检查database数据中的重复值

        关键技术: duplicated方法。

        利用duplicated()方法检测冗余的行或列,默认是判断全部列中的值是否全部重复,并返回布尔类型的结果。对于完全没有重复的行,返回值为False。对于有重复值的行,第一次出现重复的那一行返回False,其余的返回True。

import pandas as pd
database=pd.read_csv('../data/order_train2.csv')#导入数据#查看重复值记录
database[database.duplicated()]#重复值记录总数
database.duplicated().sum()

         (2)[例]在上例对database数据检查出重复值的基础上,该如何利用Python对重复数据进行删除。

        关键技术: drop_duplicates0方法

        利用duplicates()方法去除几余数据,即删除几余的所有行,默认是判断全部列程序代码

#在原表上删除重复值
database.drop_duplicates(inplace=True)#重置索引
database.index=range(database.shape[0])

四、异常值的检测与处理

 1.检测异常值

        关键技术:query方法和boxplot方法

        首先使用pandas库中的query方法查询数据中是否有异常值。然后通过boxplot方法检测异常值。

import matplotlib.pyplot as plt
plt.boxplot(database['item_price'])

 2.处理异常值

        了解异常值的检测后,接下来介绍如何处理异常值。在数据分析的过程中,对异常值的处理通常包括以下3种方法:

(1)最常用的方式是删除

(2)将异常值当缺失值处理,以某个值填充

(3)将异常值当特殊情况进行分析,研究异常值出现的原因

         (1)删除异常值

        关键技术: drop()方法

#删除
database.drop(database.index[[527681,528460]],inplace=True)
#重置索引
database.index=range(database.shape[0])

五、数据类型转换

          关键技术:astype函数

import numpy as np
arr=np.arange(1,5,0.5)
arr1=arr.astype(np.int) #将浮点型转换为整数型

六、索引设置

        Pandas库中索引的作用如下

(1)更方便地查询数据

(2)使用索引可以提升查询性能

1.添加索引

        [例]创建数据为[1,2,3,4,5]的Series,并指定索引标签为[a,b,c,d,e]

        关键技术:index方法设置索引

import pandas as pd
s=pd.Series([1,2,3,4,5],index=['a','b','c','d','e'])

2.更改索引 

         [例]某公司销售数据集“work.csv”内容如下,请设定日期为索引,并用Python实现。

        关键技术:set index0函数,可以指定某一字段为索引。

import pandas as pd
df=pd.read_csv("work.csv",sep=",",encoding="gbk")
df1=df.set_index('日期') #将df的索更改为‘日期’列

        在该案例中,除了可以用set index方法重置索引外,还可以在导入csv文件的过程中,设置index col参数重置索引

df=pd.read_csv("work.csv",sep=",",encoding="gbk",index_col='日期')

3.重命名索引 

         [例]构建series对象,其数据为[88,60,751,对应的索引为[1,231。请利用Python对该series对象重新设置索引为[1,2,3,4,5]。

        关键技术:reindex()方法

import pandas as pd
#创建series对象
s1=pd.Series([88,60,75],index=[1,2,3])
#重新设置s1的索引
s2=s1.reindex([1,2,3,4,5])

        从运行结果中可以看出,对s1索引重置后,数据中出现了缺失值。若要对这些缺失值进行填补,可以设置reindex(方法中的method参数,method参数表示重新设置索引时,选择对缺失数据插值的方法。可以设置为None、bfill(向后填充) 、ffil(向前填充)等。 

        [例]通过二维数组创建如下所示的成绩表,并重置其行索引为数学stu1,stu2,stu3,stu4,stu5,重置其列索引为[语文,物理,数学]。

语文数学英语
stu111010599
stu310588115
sty5109120130

import pandas as pd
#通过对data,index和columns的构建,得到DataFrame对象
dfda=[[110,105,99],[105,88,115],[109,120,130]]
index=['stul','stu3','stu5']
columns=[ '语文','英语','数学']
df=pd.DataFrame(data=data,index=index,columns=columns)
df.reindex(index=['stul','stu2','stu3','stu4','stu5'],columns=['语文','物理','数学'])
df

七、其他

1、大小写转换

        在数据分析中,有时候需要将字符串中的字符进行大小写转换。在Python中可以使用lower0方法,将字符串中的所有大写字母转换为小写字母。也可以使用upper0方法,将字符串中的所有小写字母转换为大写字母。

2、数据修改与替换

        (1)按列增加数据
        [例]请创建如下所示的DataFrame数据,并利用Python对该数据的最后增加列数据,要求数据的列索引为“four’,数值为[9,10,24]。若要在该数据的two’列和“three’列之间增加新的列,该如何操作?

onetwothree
a135
b789
c121518

        关键技术:insert()方法

import pandas as pd
#创建DataFrame数据对象
data=[[1,3,5],[7,8,9],[12,15,181]
index=['a','b','c']
columns=['one','two','three']
df=pd.DataFrame(data=data,index=index,columns=columns)#向df的最后增加一列
#法1:直接对df赋值
df1=df
df1['four']=[9,10,24]
df1#法2:使用loc方法增加
df2=df
df2.loc[:,'four']=[9,10,24]
df2#使用insert方法在第一列与第三列之间插入
df.insert(2,'four',[9,10,24])

        (2)按行增加数据
        [例]对于上例中的DataFrame数据,增加一行数据,数据行的索引为“d”数值为[9,10,11],请使用Python实现。若要向df数据中再增加三行数据,索引分别为“e”,“g”,数值分别为[1,2,3],[4,5,6],[7,8,9],在Python中该如何实现?

        关键技术:loc()方法和append()方法

#按行增加数据
import pandas as pd
data=[[1,3,5],[7,8,9],[12,15,18]]
index=['a','b','c']
columns=['one','two','three']
df=pd.DataFrame(data=data,index=index,columns=columns)
df.loc['d']=[9,10,11]
df#使用append方法增加多行数据
#将增加的数据创建为df_insert
data_insert=[[1,2,3],[4,5,6],[7,8,9]]
index_insert=['e','f','g']
columns_insert=['one','two','three']
df_insert=pd.DataFrame(data=data_ingert,index=index_insert,columng=columns_insert)
#将新数据添加到df数据中得到df2
df2=df.append(df_insert)
df2

        如要将第三行数据替换为[10,20,30]

        关键技术:loc()方法和iloc()方法

#按行增加数据
import pandas as pd
data=[[1,3,5],[7,8,9],[12,15,18]]
index=['a','b','c']
columns=['one','two','three']
df=pd.DataFrame(data=data,index=index,columns=columns)#法1:使用loc()
df.loc['c']=[10,20,30]#法2:使用iloc()
df.iloc[2,:]=[10,20,30]

3、数据删除

        (1)按列删除数据
        [例]请构建如下DataFrame数据并利用Python删除下面DataFrame实例的第四列数据。
        关键技术:该案例中,使用DataFrame的drop0方法,删除数据中某一列。drop0方法的参数说明如下:

labels:表示行标签或列标签

axis: axis=0,表示按行删除,axis=1,表示按列删除。默认值为0

index:删除行,默认为None

columns:删除列,默认为None

inplace: 可选参数,对原数组作出修改并返回一个新数组。默认是False,果为True,那么原数组直接被替换

#按列删除数据
#1、构建数据
data=[[0,8,-2,1],[2,10,-4,2],[4,12,-6,3],[9,10,11,12]]
index=['a','b','c','d']
columns=['one','two','three','four']
df=pd.DataFrame(data=data,index=index,columns=columns)
df#删除第四列数据,按列删除,将drop方法的axis参数设置为1
dfl=df.drop(labels='four',axis=1)
df2#删除列,也可以直接设置drop方法中的columns参数
df2=df.drop(columns='four')
df2

        (2)按行删除数据

        [例]对于上例中的DataFrame数据,请利用Python删除下面DataFrame实例的第四行数据

        关键技术:本案例可通过设置drop0方法的index参数,label参数实现

#按行删除
#方法一:设置index参数
df3=df.drop(index='d')
df3#方法2:设置labels参数
df4=df.drop(labels='d',axis=0)
df4

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

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

相关文章

sap table 获取 valuation class MBEW 查表获取

参考 https://www.tcodesearch.com/sap-tables/search?qvaluationclass

FastAPI访问/docs接口文档显示空白、js/css无法加载

如图: 原因是FastAPI的接口文档默认使用https://cdn.jsdelivr.net/npm/swagger-ui-dist5.9.0/swagger-ui.css 和https://cdn.jsdelivr.net/npm/swagger-ui-dist5.9.0/swagger-ui-bundle.js 来渲染页面,而这两个URL是外网的CDN,在国内响应超…

Text2SQL学习整理(二) WikiSQL数据集介绍

导语 上篇博客中,我们已经了解到Text2SQL任务的基本定义,本篇博客将对近年来该领域第一个大型数据集WikiSQL做简要介绍。 WikiSQL数据集概述 基本统计特性 WikiSQL数据集是一个多数据库、单表、单轮查询的Text-to-SQL数据集。它是Salesforce在2017年…

python之双链表

双链表简单讲解 双向链表(doubly linked list)是一种链式数据结构,它的每个节点包含两个指针,一个指向前一个节点,一个指向后一个节点。与单向链表相比,双向链表可以在任何位置进行插入和删除操作&#xf…

PDF转为图片

PDF转为图片 背景pdf展示目标效果 发展过程最终解决方案:python PDF转图片pdf2image注意:poppler 安装 背景 最近接了一项目,主要的需求就是本地的文联单位,需要做一个电子刊物阅览的网站,将民族的刊物发布到网站上供…

字节开源的netPoll多路复用器源码解析

字节开源的netPoll多路复用器源码解析 引言NetPollepoll API原生网络库实现netpoll 设计思路netpoll 对比 go net数据结构 源码解析多路复用池初始化Epoll相关API可读事件处理server启动accept 事件客户端连接初始化客户端连接建立 可读事件等待读取数据 可写事件处理客户端启动…

word增加引用-endnote使用

使用软件: web of science https://webofscience.clarivate.cn/wos/alldb/basic-search; Pub Med等数据库endnote20 链接: https://pan.baidu.com/s/1VQMEsgFY3kcpCNfIyqEjtQ?pwdy1mz 提取码: y1mz 复制这段内容后打开百度网盘手机App,操作更方便哦 --…

信号与线性系统翻转课堂笔记4——连续LTI系统的微分方程模型与求解

信号与线性系统翻转课堂笔记4——连续LTI系统的微分方程模型与求解 The Flipped Classroom4 of Signals and Linear Systems 对应教材:《信号与线性系统分析(第五版)》高等教育出版社,吴大正著 一、要点 (1&#x…

探索 Coinbase 二层链 Base 的潜力与风险

作者:lesleyfootprint.network 在不断变化的加密货币领域,Coinbase 已经确立了自己领先中心化交易所(CEX)的地位。然而,Coinbase 坚信去中心化是创造一个开放、全球范围内对每个人都可访问的加密经济的关键&#xff0…

python学习3

大家好,今天又来更新python学习篇了。本次的内容比较简单,时描述性统计代码,直接给出所有代码,如下: import pandas as pd from scipy.stats import fisher_exact from fuzzywuzzy import fuzz from fuzzywuzzy impor…

高性能计算HPC与统一存储

高性能计算(HPC)广泛应用于处理大量数据的复杂计算,提供更精确高效的计算结果,在石油勘探、基因分析、气象预测等领域,是企业科研机构进行研发的有效手段。为了分析复杂和大量的数据,存储方案需要响应更快&…

【兔子王赠书第12期】赠ChatGPT中文范例的自然语言处理入门书

文章目录 写在前面自然语言处理图书推荐图书简介编辑推荐 推荐理由粉丝福利写在后面 写在前面 小伙伴们好久不见吖,本期博主给大家推荐一本入门自然语言处理的经典图书,一起来看看吧~ 自然语言处理 自然语言处理(Natural Language Process…

【面向对象】C++/python/java的多态比较

一、面向对象的主要特点 封装:封装是把数据和操作数据的方法绑定在一起,对数据的访问只能通过已定义的接口。这可以保护数据不被外部程序直接访问或修改,增强数据的安全性。继承:继承是一种联结类的层次模型,并且允许…

机器学习 | KNN算法

一、KNN算法核心思想和原理 1.1、怎么想出来的? 近朱者赤,近墨者黑! 距离决定一切、民主集中制 1.2、基本原理 —— 分类 k个最近的邻居 民主集中制投票分类表决与加权分类表决 1.3、基本原理 —— 回归 计算未知点的值决策规则不同均值法与…

【UML】第5篇 UML中的视图和图

目录 一、视图和图 二、图的种类 2.1 结构图 2.2 行为图 图是UML中最重要的概念了,起码我是这么认为。 上篇关于低代码的文章,我也说了,未来也许AI编码,我们更重要的工作,是能够为业务进行建模,拆解&a…

mybatis plus 公共字段自动填充createBy updateBy

一、公共字段自动填充 需求:好多表公共的字段,赋值逻辑也相同,不用每次为其赋值,‘拦截器’统一赋值。 1. 在新增数据时,需要设置创建时间、创建人、修改时间、修改人等字段,在编辑数据时需要设置修改时间…

FL Studio21.2.2963水果音乐软件安装

FL Studio是功能强大的音乐制作解决方案,使用旨在为用户提供一个友好完整的音乐创建环境,让您能够轻松创建、管理、编辑、混合具有专业品质的音乐,一切的一切都集中在一个软件中,只要您想,只要您需要,它总能…

深兰科技入选财联社“2023科创好公司”榜单

12月13日,“2023科创好公司”评选榜单正式公布,深兰科技成功入选,获得该榜单中“新能源汽车及自动驾驶”赛道的“科创好公司”称号。 “科创好公司”榜评选是由财联社及《科创板日报》联合打造的一级市场投后服务体系中的重要活动项目&#x…

Axure 9基本元件,表单及表格元件简介,表单案例

目录 一.基本元件 1.元件基本介绍 2.基本元件的使用 二.表单及表格元件 三.表单案例 四.简单简历绘制 一.基本元件 1.元件基本介绍 概述 - 在Axure RP中,元件是**构建原型图的基础模块**。 将元件从元件库里拖拽到画布中,即可添加元件到你的原型…

什么店生意好?C++采集美团商家信息做数据分析

最近遇到几个朋友,想要一起合伙投资一个实体店,不问类型,就看哪类产品相对比较受欢迎。抛除地址位置,租金的影响,我们之谈产品。因此,我熬了几个通宵,写了这么一段爬取美团商家商品信息的数据并…