Python 数据管理

news2024/11/17 21:37:27

数据管理是收集、收集原始数据并将其转换为另一种格式的过程,以便在更短的时间内更好地理解、决策、访问和分析。

在这里插入图片描述

数据管理的重要性

数据管理是数据科学项目中非常重要的一步。下面的例子将解释它的重要性:
图书销售网站希望显示不同领域的畅销书,根据用户的喜好。例如,如果新用户搜索励志书籍,则他们想要示出销售最多或具有高评级的那些励志书籍等。
但在他们的网站上,有大量来自不同用户的原始数据。这里使用数据混合或数据管理的概念。正如我们所知,数据争吵不是由系统本身引起的。这个过程由数据科学家完成。因此,数据科学家将以这样一种方式对数据进行争论,即他们将对销售更多或具有高评级的励志书籍进行排序,或者用户购买这本书与这些书籍包等。在此基础上,新用户将做出选择。这将解释数据管理的重要性。

Python中的数据管理

数据管理是数据科学和数据分析的一个重要课题。Python的Pandas框架用于数据管理。Pandas是一个专门为数据分析和数据科学开发的Python开源库。它用于数据排序或过滤、数据分组等过程。

Python中的数据管理处理以下功能:

  • 数据探索:在此过程中,通过可视化数据表示来研究、分析和理解数据。
  • 处理缺失值:大多数具有大量数据的数据集包含NaN的缺失值,需要通过用列的平均值、众数、最频繁值替换它们,或者简单地通过删除具有NaN值的行来处理它们。
  • 重塑数据:在此过程中,根据需求操作数据,其中可以添加新数据或修改预先存在的数据。
  • 过滤数据:有时数据集包含需要删除或过滤的不需要的行或列
  • 其他:在使用上述功能处理原始数据集后,我们可以根据我们的要求获得有效的数据集,然后可以将其用于所需的目的,如数据分析,机器学习,数据可视化,模型训练等。

以下是在原始数据集上实现上述功能的数据整理的示例:

Python中的数据探索


# Import pandas package
import pandas as pd
 
# Assign data
data = {'Name': ['Jai', 'Princi', 'Gaurav',
                 'Anuj', 'Ravi', 'Natasha', 'Riya'],
        'Age': [17, 17, 18, 17, 18, 17, 17],
        'Gender': ['M', 'F', 'M', 'M', 'M', 'F', 'F'],
        'Marks': [90, 76, 'NaN', 74, 65, 'NaN', 71]}
 
# Convert into DataFrame
df = pd.DataFrame(data)
 
# Display data
df

在这里插入图片描述
处理Python中的缺失值

正如我们从前面的输出中看到的,MARKS列中存在NaN值,这是数据帧中的缺失值,将在数据处理中通过将它们替换为列均值来处理。


# Compute average
c = avg = 0
for ele in df['Marks']:
    if str(ele).isnumeric():
        c += 1
        avg += ele
avg /= c
 
# Replace missing values
df = df.replace(to_replace="NaN",
                value=avg)
 
# Display data
df

在这里插入图片描述

数据管理中的数据替换

在“Gender”列中,我们可以通过将它们分类为不同的数字来替换“Gender”列数据。

# Categorize gender
df['Gender'] = df['Gender'].map({'M': 0,
                                 'F': 1, }).astype(float)
 
# Display data
df

在这里插入图片描述
在数据管理中过滤数据

假设需要关于得分最高的学生的姓名、性别和分数的细节。这里我们需要使用pandas切片方法从不需要的数据中删除一些数据。

# Filter top scoring students
df = df[df['Marks'] >= 75].copy()
 
# Remove age column from filtered DataFrame
df.drop('Age', axis=1, inplace=True)
 
# Display data
df

在这里插入图片描述
因此,我们最终获得了一个有效的数据集,可以进一步用于各种目的。
现在我们已经了解了使用Python和pandas进行数据处理的基础知识。下面我们将讨论各种操作,我们可以使用这些操作来执行数据整理:

使用合并操作的数据整理

合并操作用于将两个原始数据合并为所需的格式。

语法: pd.merge( data_frame1,data_frame2, on=”field “)

这里的字段是两个数据框中相似的列的名称。

例如:假设教师有两种类型的数据,第一种类型的数据由学生的详细信息组成,第二种类型的数据由来自会计办公室的待付费用状态组成。因此,教师将在这里使用合并操作,以便合并数据并提供其含义。这样教师就可以很容易地分析它,也减少了教师手工合并的时间和精力。

创建第一个数据框架以使用数据管理执行合并操作:

# import module
import pandas as pd   
 
# creating DataFrame for Student Details
details = pd.DataFrame({
    'ID': [101, 102, 103, 104, 105, 106,
           107, 108, 109, 110],
    'NAME': ['Jagroop', 'Praveen', 'Harjot',
             'Pooja', 'Rahul', 'Nikita',
             'Saurabh', 'Ayush', 'Dolly', "Mohit"],
    'BRANCH': ['CSE', 'CSE', 'CSE', 'CSE', 'CSE',
               'CSE', 'CSE', 'CSE', 'CSE', 'CSE']})
 
# printing details
print(details)

在这里插入图片描述
创建第二个数据框架以使用数据管理执行合并操作:


# Import module
import pandas as pd
 
# Creating Dataframe for Fees_Status
fees_status = pd.DataFrame(
    {'ID': [101, 102, 103, 104, 105,
            106, 107, 108, 109, 110],
     'PENDING': ['5000', '250', 'NIL',
                 '9000', '15000', 'NIL',
                 '4500', '1800', '250', 'NIL']})
 
# Printing fees_status
print(fees_status)

在这里插入图片描述
使用合并操作的数据整理:


# Import module
import pandas as pd
 
# Creating Dataframe
details = pd.DataFrame({
    'ID': [101, 102, 103, 104, 105,
           106, 107, 108, 109, 110],
    'NAME': ['Jagroop', 'Praveen', 'Harjot',
             'Pooja', 'Rahul', 'Nikita',
             'Saurabh', 'Ayush', 'Dolly', "Mohit"],
    'BRANCH': ['CSE', 'CSE', 'CSE', 'CSE', 'CSE',
               'CSE', 'CSE', 'CSE', 'CSE', 'CSE']})
 
# Creating Dataframe
fees_status = pd.DataFrame(
    {'ID': [101, 102, 103, 104, 105,
            106, 107, 108, 109, 110],
     'PENDING': ['5000', '250', 'NIL',
                 '9000', '15000', 'NIL',
                 '4500', '1800', '250', 'NIL']})
 
# Merging Dataframe
print(pd.merge(details, fees_status, on='ID'))

在这里插入图片描述

基于分组方法的数据整理

数据整理中的分组方法用于根据从大数据中取出的各种组提供结果。pandas的这种方法用于从大型数据集中对数据的开始进行分组。
例如:有一家汽车销售公司,这家公司拥有不同品牌的汽车制造公司,如Maruti,Toyota,Mahindra,福特等,并有不同年份不同汽车的销售数据。因此,该公司只想争论2010年汽车销售的数据。对于这个问题,我们使用另一种数据管理技术,即pandas groupby()方法。

创建数据框以使用分组方法[汽车销售数据集]:


# Import module
import pandas as pd
 
# Creating Data
car_selling_data = {'Brand': ['Maruti', 'Maruti', 'Maruti',
                              'Maruti', 'Hyundai', 'Hyundai',
                              'Toyota', 'Mahindra', 'Mahindra',
                              'Ford', 'Toyota', 'Ford'],
                    'Year':  [2010, 2011, 2009, 2013,
                              2010, 2011, 2011, 2010,
                              2013, 2010, 2010, 2011],
                    'Sold': [6, 7, 9, 8, 3, 5,
                             2, 8, 7, 2, 4, 2]}
 
# Creating Dataframe of car_selling_data
df = pd.DataFrame(car_selling_data)
 
# printing Dataframe
print(df)

在这里插入图片描述
创建数据框架以使用分组方法[2010年数据]:


# Import module
import pandas as pd
 
# Creating Data
car_selling_data = {'Brand': ['Maruti', 'Maruti', 'Maruti',
                              'Maruti', 'Hyundai', 'Hyundai',
                              'Toyota', 'Mahindra', 'Mahindra',
                              'Ford', 'Toyota', 'Ford'],
                    'Year':  [2010, 2011, 2009, 2013,
                              2010, 2011, 2011, 2010,
                              2013, 2010, 2010, 2011],
                    'Sold': [6, 7, 9, 8, 3, 5,
                             2, 8, 7, 2, 4, 2]}
 
# Creating Dataframe for Provided Data
df = pd.DataFrame(car_selling_data)
 
# Group the data when year = 2010
grouped = df.groupby('Year')
print(grouped.get_group(2010))

在这里插入图片描述

清除重复的数据整理

Pandas duplicates()方法帮助我们从大数据中删除重复的值。数据整理的一个重要部分是从大型数据集中删除重复值。

Syntax: DataFrame.duplicated(subset=None, keep=’first’)

这里的subset是我们要删除Duplicate值的列值。
在保持,我们有3个选项:

  • 如果keep =‘first’,则第一个值被标记为原始值,如果发生,则所有值的其余部分将被删除,因为它被认为是重复的。
  • 如果keep=‘last’,则最后一个值被标记为原始剩余值,上述相同的值将被删除,因为它被认为是重复值。
  • 如果keep =‘false’,所有出现一次以上的值都将被删除,因为所有值都被认为是重复值。

例如,A大学将组织该活动。为了参加学生必须填写他们的详细信息在网上的形式,以便他们将与他们联系。学生可能会多次填写表格。如果一个学生填写多个条目,可能会给活动组织者带来困难。组织者将获得的数据可以通过删除重复值轻松管理。

创建想要参与活动的学生数据集:

import pandas as pd
 
# Initializing Data
student_data = {'Name': ['Amit', 'Praveen', 'Jagroop',
                         'Rahul', 'Vishal', 'Suraj',
                         'Rishab', 'Satyapal', 'Amit',
                         'Rahul', 'Praveen', 'Amit'],
 
                'Roll_no': [23, 54, 29, 36, 59, 38,
                            12, 45, 34, 36, 54, 23],
 
                'Email': ['xxxx@gmail.com', 'xxxxxx@gmail.com',
                          'xxxxxx@gmail.com', 'xx@gmail.com',
                          'xxxx@gmail.com', 'xxxxx@gmail.com',
                          'xxxxx@gmail.com', 'xxxxx@gmail.com',
                          'xxxxx@gmail.com', 'xxxxxx@gmail.com',
                          'xxxxxxxxxx@gmail.com', 'xxxxxxxxxx@gmail.com']}
 
# Creating Dataframe of Data
df = pd.DataFrame(student_data)
 
# Printing Dataframe
print(df)

在这里插入图片描述
从数据集中删除重复数据:


# import module
import pandas as pd
 
# initializing Data
student_data = {'Name': ['Amit', 'Praveen', 'Jagroop',
                         'Rahul', 'Vishal', 'Suraj',
                         'Rishab', 'Satyapal', 'Amit',
                         'Rahul', 'Praveen', 'Amit'],
 
                'Roll_no': [23, 54, 29, 36, 59, 38,
                            12, 45, 34, 36, 54, 23],
                'Email': ['xxxx@gmail.com', 'xxxxxx@gmail.com',
                          'xxxxxx@gmail.com', 'xx@gmail.com',
                          'xxxx@gmail.com', 'xxxxx@gmail.com',
                          'xxxxx@gmail.com', 'xxxxx@gmail.com',
                          'xxxxx@gmail.com', 'xxxxxx@gmail.com',
                          'xxxxxxxxxx@gmail.com', 'xxxxxxxxxx@gmail.com']}
 
# creating dataframe
df = pd.DataFrame(student_data)
 
# Here df.duplicated() list duplicate  Entries in ROllno.
# So that ~(NOT) is placed in order to get non duplicate values.
non_duplicate = df[~df.duplicated('Roll_no')]
 
# printing non-duplicate values
print(non_duplicate)

在这里插入图片描述

在数据整理中使用两个数据集的连接创建新数据集。
我们可以通过几种方式连接两个数据帧。对于我们在ConcanatingTwo数据集中的示例,我们使用pd.concat()函数。


# importing pandas module
import pandas as pd
   
# Define a dictionary containing employee data
data1 = {'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'],
        'Age':[27, 24, 22, 32],
        'Address':['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj'],
        'Qualification':['Msc', 'MA', 'MCA', 'Phd'],
        'Mobile No': [97, 91, 58, 76]}
     
# Define a dictionary containing employee data
data2 = {'Name':['Gaurav', 'Anuj', 'Dhiraj', 'Hitesh'],
        'Age':[22, 32, 12, 52],
        'Address':['Allahabad', 'Kannuaj', 'Allahabad', 'Kannuaj'],
        'Qualification':['MCA', 'Phd', 'Bcom', 'B.hons'],
        'Salary':[1000, 2000, 3000, 4000]}
   
# Convert the dictionary into DataFrame 
df = pd.DataFrame(data1,index=[0, 1, 2, 3])
   
# Convert the dictionary into DataFrame 
df1 = pd.DataFrame(data2, index=[2, 3, 6, 7])

我们将沿着轴0连接这两个数据帧。

res = pd.concat([df, df1])

在这里插入图片描述

注意:我们可以看到data 1没有salary列,所以所有四行新的dataframe res都是Nan值。

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

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

相关文章

推荐一款IDEA神级插件【Bito】而且免费!

什么是Bito? Bito是一款在IntelliJ IDEA编辑器中的插件,Bito插件是由ChatGPT团队开发的,它是ChatGPT团队为了提高开发效率而开发的一款工具。ChatGPT团队是一支专注于自然语言处理技术的团队,他们开发了一款基于GPT的自然语言处理…

轮播图,用vue来写一个简单的轮播图

轮播图,用vue来写一个简单的轮播图 写的很简单,就是一个小练习,哈哈哈,下面的几张图分别是轮播图的第一张,中间图,最后一张的效果图。 使用了vue 中的属性绑定 v-bind ,v-show 以及 事件监听 v-on 指令。 思…

NZ13:VBA给数据加密处理

【分享成果,随喜正能量】爱出者爱返,福往者福来。怀揣一颗善良的心,本本分分,坦坦荡荡,多去帮助需要的人,坚持善良做人,才能不负于人,不负自己。。 我的教程一共九套及VBA汉英手册一…

黄皮书-线接触热弹流润滑 Fortran+Matlab转译代码

原Fortran代码有错误,进行了修改,数值上差别不大。根据Fortran代码转的Matlab,可以完美运行,但是因为精度问题有差异,只能说趋势是一致的。 需要私我-资源里只是Fortran运行结果

Spark(25):Spark部署模式对比

目录 0. 相关文章链接 1. Spark支持的集群管理器 2. YARN 模式运行机制 2.1. YARN Cluster 模式 2.2. YARN Client 模式 3. Standalone 模式运行机制 3.1. Standalone Cluster 模式 3.2. Standalone Client 模式 0. 相关文章链接 Spark文章汇总 1. Spark支持的集群管…

Python爬虫——urllib_微博cookie登陆

cookie登陆适用场景: 适用场景:数据采集的时候,需要绕过登陆,然后进入到某个页面 # 适用场景:数据采集的时候,需要绕过登陆,然后进入到某个页面 import urllib.requesturl https://weibo.cn/7…

不用显示器,不用鼠标和键盘,让我们用主机远程访问OK3588的桌面

不用显示器,不用鼠标和键盘,让我们用主机远程访问OK3588的桌面 MobaXterm软件介绍串口终端运行命令MobaXterm访问开发板 MobaXterm软件介绍 MobaXterm是一款增强型终端软件,对于Windows平台上的程序员、网络管理员和开发者是一款极其优秀的工…

数据库 --- mysql(03)-- mysql字符集、表操作(01)

MYSQL 1、mysql字符集 (1)简介: MySQL字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念: 字符集(CHARACTER)是一套编码校对规则(CO…

Spark(24):Spark内核概述

目录 0. 相关文章链接 1. Spark核心组件 1.1. Driver 1.2. Executor 2. Spark通用运行流程概述 0. 相关文章链接 Spark文章汇总 1. Spark核心组件 1.1. Driver Spark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行工作。Dr…

基于SSM的新生报到系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

USB接口种类知多少?一起来温故一下吧!

前言 USB接口类型有很多,如下图所示,到底哪个是哪个?都怎么称呼? 本人也是对各种USB接口一知半解,趁着今天周末,整理了下USB接口的种类,相信也有很多跟我一样对其了解不够深的朋友,那…

测试开发必备技能-Jmeter二次开发

01 概述 为什么需要做二次开发?JMeter作为一款开源的性能、接口测试工具,有时候无法满足我们工作的需要,一般体现在:协议不支持、没有相应数据处理功能等。 一般这种情况下,我们可以做的选择有: 第一种找…

4.Java基本数据类型

Java 的两大数据类型: 基本数据类型引用数据类型 1. 八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型 byte: byte 数据类型是8位、有符号的,以二进制补码表…

Python 列表 extend()函数使用详解

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 extend函数使用详解 1、可以接收的参数1.1、添加字符串1.2、添加元组1.3、添加字…

ts学习(一):基础篇1

旨在记录! 这篇人都学废了,本想记录常用类型,越学越多,每一个都很重要… 一、string: 字符串类型二、number: 数字类型三、boolean: 布尔值四、array:数组五、tuple: 元组六、字面量七、object:对象八、any: 任意类型九、unknown:…

Nacos知识掌握【快速入门】

通过上面的调用图会发现,除了微服务,还有一个组件是服务注册中心,它是微服务架构非常重要 的一个组件,在微服务架构里主要起到了协调者的一个作用。注册中心一般包含如下几个功能: \1. 服务发现: 服务注…

第十章:PSPNet——金字塔场景解析网络

0.摘要 场景解析对于无限制的开放词汇和多样化的场景是具有挑战性的。在本文中,我们通过金字塔池化模块和提出的金字塔场景解析网络(PSPNet),利用全局上下文信息的能力,通过基于不同区域的上下文聚合,来处理…

五种最新优化算法(SWO、ZOA、EVO、KOA、GRO)求解23个基准测试函数(含参考文献及MATLAB代码)

一、五种算法简介 (1)蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为,具有搜索速度快&a…

Leetcode 43 字符串相乘

Leetcode43字符串相乘 题解1(按位计算) 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整…

Ansible 自动化运维工具(完善版)

目录 Ansible概述 Ansible特点 Ansible应用 1、使用者 2、Ansible工具集合 3、作用对象 Ansible的搭建 环境 ansible主机 1、ansible 2、Ansible-doc Ansible模块 1.command模块 2.shell模块 3.raw模块 Ansible概述 Ansible是最近非常火的一款开源运维自动化工具…