当前位置: 首页 > news >正文

昆明手机app开发合肥网站优化技术

昆明手机app开发,合肥网站优化技术,温州科技网站建设,山东德州做网站0、前言: 这部分内容是对Pandas的回顾,同时也是对Pandas处理异常数据的一些技巧的总结,不一定全面,只是自己在数据处理当中遇到的问题进行的总结。 1、当数据中有重复行的时候需要检测重复行: 方法:使用p…

0、前言:

  • 这部分内容是对Pandas的回顾,同时也是对Pandas处理异常数据的一些技巧的总结,不一定全面,只是自己在数据处理当中遇到的问题进行的总结。

1、当数据中有重复行的时候需要检测重复行:

  • 方法:使用pandas中的duplicated方法,在该方法中有两个参数subset和keep,subset需要提供一个列表,列表中每个元素是一个列名,keep有三个可选项(‘first’,‘last’,False)
  • 示例
import pandas as pd# 创建一个包含重复行的示例数据框
data = {'A': [6, 2, 3, 4, 6], 'B': [11, 10, 9, 10, 11]}
df = pd.DataFrame(data)display(df)# 使用duplicated方法检测重复行
duplicates = df.duplicated(subset=['A'])
print(duplicates)
print('='*30)
# 使用duplicated方法检测重复行
duplicates = df.duplicated(subset=['A'],keep=False)
print(duplicates)
print('='*30)
# 使用duplicated方法检测重复行
duplicates = df.duplicated(subset=['A'],keep="first")
print(duplicates)
print('='*30)
# 使用duplicated方法检测重复行
duplicates = df.duplicated(subset=['A'],keep='last')
print(duplicates)
print('='*30)
# 使用duplicated方法检测重复行
duplicates = df.duplicated(subset=['A','B'])
print(duplicates)
print('='*30)

在这里插入图片描述


2、删除重复行:

  • 方法用pandas中的duplicated方法加loc索引即可
  • 注意:删除重复列就没有比较快捷的方法了,就需要一一比较然后用drop方法删除对应列
data = [[1,2,3,4],[5,6,7,8],[1,2,3,4]]
df = pd.DataFrame(data,columns=list('ABCD'),index=[1,2,3])
display(df)# 查找重复行
re = df.duplicated(subset=['A','B','C','D'],keep='first')
display(~re)# 删除
df_new = df.loc[~re].copy()
display(df_new)

在这里插入图片描述


3、需要替换DataFrame元素中的值:核心思想就是映射,借助python中的字典。

  • 替换中主要用到的思路就是映射,映射的含义是创建一个映射关系列表,把values元素和一个特定的标签或者字符串绑定,从其含义就可以看出和python中的字典非常像。
  • 方法1:使用replace,特点是可以替换整个DataFrame中的值,会生成一个新数组。要替换原来的数组就要重新给原来的数组把replace之后的新数组赋值过去,当然先选中需要替换的列然后再替换也是可以的。
# 测试
df = DataFrame(data=[[1,2,34,5,6],[1,2,34,5,6],[1,2,34,5,6]],index=[1,2,3],columns=['语文','数学','英语','化学','科技']
)
display(df)
a = df.replace({1:'x',5:100}).copy()
display(a)

在这里插入图片描述

  • 方法2:使用map,主要针对DataFrame中的列进行处理,其特点有3,第一可以通过已有列生成一个新列,第二适合处理某一个单独列,第三map函数中可以使用lambda函数或者自定义函数。但有个前提就是map中要处理哪一列,就要给列中所有元素给出对应的映射,不能有的给了,有的没给,没给的会修改为NaN值,这种方法会生成新列,没法修改原来的列,要修改原来的列就要给原来的列重新赋值map生成的新列
# 测试
df = DataFrame(data=[[1,2,34,5,6],[10,2,34,7,6],[15,2,34,5,6]],index=[1,2,3],columns=['语文','数学','英语','化学','科技']
)
display(df)
# 通过已有列生成新列
df['化学改'] = df.loc[:,'化学'].map({5:50,7:90})
display(df)
# 单独处理某一列
df['语文改'] = df.loc[:,'语文'].map({1:10,15:10})
display(df)
# 单独处理某一列
df['语文2改'] = df.loc[:,'语文'].map({1:10,15:10,10:10})
display(df)
# 映射函数
def n(x):if x > 60:return '及格'else:return "不及格"
df['数学判断'] = df.loc[:,'数学'].map(n)
display(df)
df['化学判断'] = df.loc[:,'化学改'].map(lambda x: '合格' if x>60 else '不合格')
display(df)

在这里插入图片描述

  • 方法3:使用rename方法替换DataFrame中的行索引和列索引
# 测试
df = DataFrame(data=[[1,2,34,5,6],[10,2,34,7,6],[15,2,34,5,6]],index=[1,2,3],columns=['语文','数学','英语','化学','科技']
)
display(df)
df1 = df.rename(index={1:'zhang'},columns={'语文':'YuWen'}).copy()
display(df1)

在这里插入图片描述

  • 方法4:factorize() 是一个在 pandas 中的函数,它可以将分类或者标签数据转换为数值形式。这个函数会返回两个值:一个整数序列(表示分类的整数代码)和一个包含分类标签的字符串系列。
    重要参数:na_option:如何处理缺失值。可以设为 ‘drop’(默认),‘keep’ 或 ‘ignore’。如果设为 ‘keep’,缺失值将被视为一个特殊的类别。如果设为 ‘drop’,含有缺失值的行将被完全忽略。如果设为 ‘ignore’,含有缺失值的行仍然会被编码,但结果可能不是整数。注意:factorize() 会返回一个新的列,如果要修改原来的列,就要给原来的列重新赋值
da = pd.DataFrame([['a','v','e'],['b','c','d']],columns=['a','b','c'],index=[1,2])
display(da)
i,j = da.a.factorize()
display(i,j)
da.a = a
display(da)
da.c,k = da.loc[:,'c'].factorize()
display(k)
display(da)

在这里插入图片描述


4、异常值筛选:

  • 使用describe()函数查看每一列的描述性统计量
# 测试
df = DataFrame(data=[[1,2,34,5,6],[10,2,34,7,6],[15,2,34,5,6]],index=[1,2,3],columns=['语文','数学','英语','化学','科技']
)
display(df)
df.describe()

在这里插入图片描述

  • 使用std()函数可以求得DataFrame对象每一列的标准差(较为简单不做示例)
  • 使用info()可以获取数据中是否有空值
  • 异常值筛选思路:先确定异常值,然后通过条件判断获取异常值
df = DataFrame(data={'height': np.random.randint(120,260,size=5),'weight': np.random.randint(40,150,size=5)}
)
df.loc[:,'weight']=[180,500,600,111,120]
display(df)
pro = df.loc[:,'weight']>180
display(df.loc[:'weight'][pro])

在这里插入图片描述

  • unique() 方法,可以对某一列或一行数据去重(较为简单不做示例)
  • df.query : 按条件查询,可以在DataFrame中以字符串的形式编写表达式来选择或过滤特定的行和列。
# 测试
df = DataFrame(data=[[1,2,34,5,6],[10,2,34,7,6],[15,2,34,5,6]],index=[1,2,3],columns=['语文','数学','英语','化学','科技']
)
display(df)
a = df.query("数学==2").copy()
display(a)
b = df.query("化学==5 and 语文==1").copy()
display(b)

在这里插入图片描述


http://www.mnyf.cn/news/51218.html

相关文章:

  • 为什么重装电脑没有wordpress优化合作平台
  • 中介做网站的别打电话下载百度卫星导航
  • 网站主题制作二维码引流推广的平台
  • 丝绸之路网站建设报告seo零基础教学视频
  • 现在还做响应式网站吗邢台网站公司
  • 用html5做的网站素材企业网站seo平台
  • 网站制作建设飞沐网络营销效果评估
  • 网站被收录后又被提出了安卓优化大师最新版
  • 网站主机类型seo快速建站
  • wordpress修改永久链接后无法访问武汉网络seo公司
  • 垂直网站做排名全网营销平台
  • 一家装修的网站怎么做的seo优化师是什么
  • wordpress全站cdn怎么投放广告
  • 互动营销的案例及分析关键词优化公司
  • 做网站租空间网络产品及其推广方法
  • 新乡网站建设哪家公司好软文营销定义
  • 网站首页制作的过程河南网站推广公司
  • wordpress搭建的知名网站google浏览器网页版
  • 网站建设seo网络推广搜索引擎优化怎么做的
  • 视频网站如何推广搜索引擎优化seo论文
  • 山西智能网站建设制作设计网站logo
  • 开个做网站公司百度平台商家联系方式
  • 自己电脑怎么做web网站吗百度网站官网网址
  • 百度推广开户电话seo是什么服
  • 赚钱网站入口行业关键词搜索量排名
  • 网站建设科研申报书搜索引擎营销的典型案例
  • 网站界面设计需要社交媒体营销三种方式
  • 北京公司网站制作哪家专业网络营销推广平台
  • 好的网站建站公司优化设计三要素
  • 镇江网站建设价位汽车宣传软文