python数值操作

简介: 笔记

首先查看数据,分别为数据1,数据2,数据3

5.png6.png7.png


一、数值替换


import pandas as pd
# 数值操作
df  = pd.read_excel('/Users/caizhengjie/Desktop/a.xlsx')
print(df)
# 数值的替换——1对1替换
print('替换后.........')
df['姓名'].replace('王峰','caizhengjie',inplace=True)
print(df)
# 数据1
df1 = pd.read_excel('/Users/caizhengjie/Desktop/数据1.xlsx')
print(df1)
# 数值的多对一替换
df1['年龄'].replace([240,260,280],33,inplace = True)
print(df1)
# 数值的多对多的替换
df2 = pd.read_excel('/Users/caizhengjie/Desktop/数据1.xlsx')
print(df2)
df2['年龄'].replace({240:32,260:33,280:34},inplace=True)
print(df2)


二、数值排序


import pandas as pd
# 数值排序
df = pd.read_excel('/Users/caizhengjie/Desktop/数据1.xlsx')
print(df)
# 按照一列数值进行排序
'''
用到的方法:sort_values(),在sort_values()方法后面要指明要排序的列名,以及是升序和降序
df.sort_values(by=['列名'],ascending=False)
ascending=False 表示为降序排序
ascending=True 表示为升序排序
默认的是升序,即可以不指定排序方式
'''
# 按照年龄降序排序
print(df.sort_values(by=["年龄"],ascending=False))
# 按照年龄升序排序
print(df.sort_values(by=["年龄"],ascending=True))
# 按照有缺失值的列进行排序
'''
当排序有缺失值的时候,可以通过设置na_position参数对缺失值的显示位置进行设置,默认参数值为last,可以不写,表示将缺失值显示值在最后
'''
# 将空缺值放在最后
print(df.sort_values(by=["年龄"]))
# 将空缺值放在最前面
print(df.sort_values(by=["年龄"],na_position='first'))
# 按照多列数值进行排序
'''
当遇到列名1遇到重复时,在按照列名2进行排序
'''
print(df.sort_values(by=["年龄","成交时间"], ascending=[True,False]))


三、数值排名


import pandas as pd
# 数值排序名
df = pd.read_excel('/Users/caizhengjie/Desktop/数据1.xlsx')
print(df)
'''
使用方法:rank()方法,rank()方法里面主要有两个参数,一个是ascending,用来指定是升序还是降序
另一个是method
method         说明
average 与excel中RANK_.VG函数功能一样
first 按值在所有的排列数据中出现的先后排序排名
min 与excel中RANK.EQ函数功能一样
max 与min相反,取重复值对应的最大排名
'''
print(df['销售ID'].rank(method='average'))
print(df["销售ID" ].rank(method='first'))
print(df["销售ID" ].rank(method='min'))
print(df["销售ID" ].rank(method='max'))
print(df["年龄" ].rank(method='min',ascending=False))


四、数值删除


import pandas as pd
# 数值删除
df = pd.read_excel('/Users/caizhengjie/Desktop/数据1.xlsx')
print(df)
# 删除列--通过删除列名
print(df.drop(['销售ID','成交时间'],axis=1))
# 删除列--通过直接传入待删除列的位置,也需要用到axis参数
print(df.drop(df.columns[[4,5]],axis=1))
#也可以不带axis参数
print(df.drop(columns=['销售ID','成交时间']))
# 删除行
print(df.drop([4,5],axis = 0))
# 删除特定行
# 不用直接删除满足条件的值,把要删除的值过滤掉就可以
print(df[df["年龄"]<40])


五、数值计数


import pandas as pd
# 数值计数:就是计算某个值在一系列数值中出现的次数
df = pd.read_excel('/Users/caizhengjie/Desktop/数据1.xlsx')
print(df)
print("统计销售ID每个值的数量")
print(df['销售ID'].value_counts())
# 可以查看数值占比
# 只需要给value_counts()方法传入参数normalize = True
print(df['销售ID'].value_counts(normalize=True))
# 通过设置sort=False可以实现不按计数值降序排列
print(df['销售ID'].value_counts(normalize=True,sort=False))


六、唯一值获取


'''
唯一值获取:就是把某一系列值删除重复项以后的结果,一般可以将表中的某一列认为是一系列值
'''
import pandas as pd
df = pd.read_excel('/Users/caizhengjie/Desktop/数据1.xlsx')
print(df)
print('销售ID唯一值:',df['销售ID'].unique())


七、数值查找


import pandas as pd
# 数值查找:就是查看数据表中的数据是否包含某个值或某些值
df = pd.read_excel('/Users/caizhengjie/Desktop/数据1.xlsx')
print(df)
# 对年龄这一栏查看是否包含31,21
print(df['年龄'].isin([31,21]))
# 可以对全表查看是否包含某些值
print(df.isin(['蔡政洁']))


八、区间切分


import pandas as pd
# 区间切分:就是将一些列数值分成若干份
df = pd.read_excel('/Users/caizhengjie/Desktop/数据2.xlsx')
print(df)
# 方法:用到cut方法,cut方法里面有个参数bins用来指明切分区间
print(pd.cut(df['年龄'],bins=[0,3,6,20]))
# 方法qcut()方法,不需要事先指明切分区间,只需要指明切分个数
print(pd.qcut(df['年龄'],3))


九、插入新的行或列


import pandas as pd
# 插入新的行或者列
df = pd.read_excel('/Users/caizhengjie/Desktop/数据1.xlsx')
print(df)
# python插入列的方法是insert()方法,在insert()方法后的括号中指明要插入的位置,插入后新列的名,以及要插入的数据
# python没有专门用来插入行的方法,可以把要插入的行当作一个新表,然后进行拼接
# 两种方法增加列
df.insert(2,'商品类别',['cat01','cat02','cat03','cat04','cat05','cat06'])
print(df)
df['商品类别']=['cat01','cat02','cat03','cat04','cat05','cat06']
print(df)


十、行列互换


import pandas as pd
# 行列互换:就是将数据行转换到列上,列数据转换到行上
df = pd.read_excel('/Users/caizhengjie/Desktop/数据1.xlsx')
print(df)
# 第一次转换
print(df.T)
# 再次转换(复位)
print(df.T.T)


十一、索引重塑


import pandas as pd
# 索引重塑
df = pd.read_excel('/Users/caizhengjie/Desktop/数据1.xlsx')
print(df)
print(df.stack())
# 复位
print(df.stack().unstack())


十二、长宽表转换


import pandas as pd
# 长宽表转换
df = pd.read_excel('/Users/caizhengjie/Desktop/数据3.xlsx')
# 打印宽表
print(df)
#宽表转换为长表
'''
stack()方法将表格型数据转为树型数据,是在保持行索引不变的前提下,将列索引也变成行索引
'''
# 首先将company和name不变的条件下,将Sale2013  Sale2014  Sale2015  Sale2016变成行索引
# 第一步将将company和name设置为索引
print(df.set_index(['company','Name']))
# 第二步调用stack方法将列索引转换成行索引
print(df.set_index(['company','Name']).stack())
# 第三步用reset_index()方法进行索引重置
print(df.set_index(['company','Name']).stack().reset_index())
# melt()方法实现
print(df.melt(id_vars=['company','Name'],var_name='Year',value_name='Sale'))


十三、apply()与applymap()


import pandas as pd
data = {'c1':[1,4,7],'c2':[3,6,9],'c3':[4,7,10]}
df = pd.DataFrame(data)
print(df)
# apply(),将c1列中的每个元素加1
print(df['c1'].apply(lambda x:x+1))
# applymap()对表中的每个元素加一
print(df.applymap(lambda x:x+1))
相关文章
|
2月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
79 0
|
4月前
|
数据挖掘 Python
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
411 0
|
2月前
|
机器学习/深度学习 算法 数据可视化
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
特征工程是机器学习流程中的关键步骤,通过将原始数据转换为更具意义的特征,增强模型对数据关系的理解能力。本文重点介绍处理数值变量的高级特征工程技术,包括归一化、多项式特征、FunctionTransformer、KBinsDiscretizer、对数变换、PowerTransformer、QuantileTransformer和PCA,旨在提升模型性能。这些技术能够揭示数据中的潜在模式、优化变量表示,并应对数据分布和内在特性带来的挑战,从而提高模型的稳健性和泛化能力。每种技术都有其独特优势,适用于不同类型的数据和问题。通过实验和验证选择最适合的变换方法至关重要。
47 5
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
|
3月前
|
Python
安装notepad++ 安装Python Python环境变量的数值。怎样在notepad++上运行Python的代码
这篇文章提供了在notepad++上安装和配置Python环境的详细步骤,包括安装Python、配置环境变量、在notepad++中设置Python语言和快捷编译方式,以及解决可能遇到的一些问题。
安装notepad++ 安装Python Python环境变量的数值。怎样在notepad++上运行Python的代码
|
4月前
|
存储 监控 数据处理
💻Python高手必备!文件系统操作秘籍,让你的数据存取如臂使指
【7月更文挑战第29天】在数据驱动时代, Python以简洁语法、丰富库生态和强大跨平台能力, 成为数据科学等领域首选。本文探讨Python文件系统操作秘籍, 助力高效数据处理。
49 11
|
4月前
|
索引 Python
Python的列表操作有哪些?
Python的列表操作非常丰富,包括列表的创建、元素的访问、修改、添加、删除、切片、排序等多个方面。
47 12
|
4月前
|
监控 网络协议 网络安全
SMTP操作使用详解并通过python进行smtp邮件发送示例
SMTP操作使用详解并通过python进行smtp邮件发送示例
136 3
|
4月前
|
数据挖掘 数据处理 Python
🔍深入Python系统编程腹地:文件系统操作与I/O管理,打造高效数据处理流水线
【7月更文挑战第29天】深入Python系统编程腹地:文件系统操作与I/O管理,打造高效数据处理流水线
39 3
|
4月前
|
安全 数据安全/隐私保护 Python
下一篇
无影云桌面