【机器学习5】数据处理(二)Pandas:表格处理 2

简介: 【机器学习5】数据处理(二)Pandas:表格处理

🌕🌕单条件过滤

df[df.z>=5]

🌕🌕多条件过滤

df[(df.z>=4)&(df.z<=5)]

🌙🌙获取列名和行名

df.columns #获取列名
df.index  #获取行名

🌙🌙观察DataFrame的内容

df.info() #打印属性信息
df.head()# 查看前五行的数据
df.tail()#查看后五行的数据

✨✨变量的变换

有时候,我们需要对DataFrame某列的每个元素都进行运算处理,从而产生并添加新的列

我么可以直接对DataFrame的列进行加减乘除某个数,产生新的列:

df['z1']=df['z']*2

f107b3b2d3474b689745c049db386c61.png

apply、applymap和map方法都可以向对象中的数据传递函数,主要区别如下:
🌙apply的操作对象是DataFrame的某一列(axis=1)或者某一行(axis=0)

🌙applymap的操作对象是元素极,作用于每个DataFrame的每个数据
🌙map的操作对象也是元素极,但其是对Series的每个数据调用一次函数

使用apply方法,结合lambda表达式,可以为原数据框添加新的列:

df['z2']=df.apply(lambda x:x['z']*2 if x['z']==4 else x['z'],axis=1)

✨✨表格的拼接

有时候,我们需要在已有数据框的基础上添加新的行或者列,或者横向或纵向的表格。此时我们需要使用pd.concat函数或者append函数实现该功能。

✨✨ 表格的分组操作

DataFrame往往存在某列包含多个类别的数据,例如上次博客中的经典的葡萄酒数据集。我们以此为例。

import pandas as pd
file_path="D:\A_data\Data_wine数据\wine.xlsx"
df=pd.read_excel(file_path)
df

使用 groupby()函数进行分组操作:

df1=df.groupby('label')
df

分组之后的结果与原来数据一样,这是因为在类别标签‘label’这一列,原来的数据就是按照0、1、2三种类别的顺序排下来的。

🌙🌙按照分组求均值、求和

求均值:

df2=df.groupby('label').mean()
df2

当然了,也可以只打出我们想要的某一列的均值:

df2=df.groupby('label').ash.mean()
df2

求和:

对于这个葡萄酒数据集可能求和操作并没有意义,但在此只是练习:

df2=df.groupby('label').sum()
df2

求方差:

df2=df.groupby('label').std()
df2

✨✨表格的拼接

有时候,我们需要在已有数据框的基础上添加新的行或者列,或者横向或纵向的表格。此时我们需要使用pd.concat函数或者append函数实现该功能。

其中,axis=0表示沿纵轴连接。axis=1表示沿横轴连接。

下面我们再举一个例子:

(我觉得2020年国赛数学建模国赛C题很不错)

首先,我们可以看一下,这是一个多sheet Excel:

而且,sheet2 、sheet3企业代号就是sheet1中企业的所有发票信息,也就是说一个企业就有很多发票号码。
我们需要整合sheet2,以及sheet3中的信息,将一个企业的某一个指标进行计算,然后希望补到heet1中,形成一个更宏观的表格。

分析指标:总进项价税额:是指企业在一段时间内购进产品的价值总和,该值越高说明企业的生产和经营规模就越大,可以作为衡量企业生产规模大小的有效指标。

我希望根据sheet2算出这个指标,然后添加到sheet1中。

首先导入数据。

import pandas as pd
file_path="D:\A_data\Data.2020.C\附件1:123家有信贷记录企业的相关数据.xlsx"
df=pd.read_excel(file_path,sheet_name=None)
df

这里设置sheet_name=None,会将所有的sheet都整合在df中。

将sheet1保存至df1

df1=pd.read_excel(file_path,sheet_name='企业信息')
df1

将我们所要研究的sheet2即“进项发票信息”保存给df2

df2=pd.read_excel(file_path,sheet_name='进项发票信息')
df2

根据sheet2计算总进项价税额:

df2_=df2.groupby(['企业代号'],as_index=False,sort=False)['价税合计'].sum()
df2_

这里注意,设置参数sort=False,不然会改变企业代号的排序。

删除企业代号这一列:

df2_.drop(labels='企业代号',axis=1,inplace=False)

参数说明:axis默认为0,指删除行,axis=1,指删除列。

inplace=False,默认该删除操作不改变原数据,而是返回一个执行删除操作后的新DataFrame。inplace=True,则会直接在原数据上进行删除操作,且删除后无法返回。

😭😭😭😭**由于我拼接表格,添加新的一列,没有成功。弄出来是这个样子的:**😱😱😱

所以下面我是导出数据,形成一个新的excel,然后利用excel复制粘贴到sheet1中。

df2__.to_excel("D:\A_data\Data.2020.C\进项价税合计.xlsx")

还要继续努力呀😭😭😭😭加油加油!


相关文章
|
15天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
43 0
|
2月前
|
数据采集 数据可视化 数据挖掘
Pandas函数大合集:数据处理神器一网打尽!
Pandas函数大合集:数据处理神器一网打尽!
34 0
|
2月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
75 0
|
16天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
30 2
|
1月前
|
并行计算 大数据 数据处理
亿级数据处理,Pandas的高效策略
在大数据时代,数据量的爆炸性增长对处理技术提出更高要求。本文介绍如何利用Python的Pandas库及其配套工具高效处理亿级数据集,包括:采用Dask进行并行计算,分块读取以减少内存占用,利用数据库进行复杂查询,使用内存映射优化Pandas性能,以及借助PySpark实现分布式数据处理。通过这些方法,亿级数据处理变得简单高效,助力我们更好地挖掘数据价值。
53 1
|
1月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
86 3
|
2月前
|
数据采集 数据挖掘 数据处理
Pandas实践:南京地铁数据处理分析
Pandas实践:南京地铁数据处理分析
38 2
|
2月前
|
数据挖掘 数据处理 Python
Pandas表格样式美化指南:应用条形图
Pandas表格样式美化指南:应用条形图
36 0
|
3月前
|
数据采集 数据挖掘 数据处理
解锁Python数据分析新技能!Pandas实战学习,让你的数据处理能力瞬间飙升!
【8月更文挑战第22天】Python中的Pandas库简化了数据分析工作。本文通过分析一个金融公司的投资数据文件“investment_data.csv”,介绍了Pandas的基础及高级功能。首先读取并检查数据,包括显示前几行、列名、形状和数据类型。随后进行数据清洗,移除缺失值与重复项。接着转换日期格式,并计算投资收益。最后通过分组计算平均投资回报率,展示了Pandas在数据处理与分析中的强大能力。
45 0
|
1月前
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
40 1