问题描述:在数据预处理时,往往需要对描述性数据进行分类赋值或对数据进行分级赋值。

首先,会想到用for循环,依次判断赋值:

for n in range(len(data1)):
print(n)
if data1['文化程度'][n] == '小学':
data1['文化程度得分'][n] = 1
elif data1['文化程度'][n] == '初中':
data1['文化程度得分'][n] = 2
elif data1['文化程度'][n] == '高中':
data1['文化程度得分'][n] = 3
elif data1['文化程度'][n] == '大专':
data1['文化程度得分'][n] = 4
elif data1['文化程度'][n] == '本科及以上':
data1['文化程度得分'][n] = 5
else:
data1['文化程度得分'][n] = 0

但是,当数据量较大时,这种处理方式十分耗时

于是寻找其他方式,利用.loc选取数据进行赋值,由于目前对python还处于初级阶段,没有找到直接赋值的简单方法,于是先利用.loc选取,再用.concat将数据拼接起来

 da1 = data.loc[data['文化程度'] == '小学']
da1['文化程度得分'] = 1
da2 = data.loc[data['文化程度'] == '初中']
da2['文化程度得分'] = 2
da3 = data.loc[data['文化程度'] == '高中']
da3['文化程度得分'] = 3
da4 = data.loc[data['文化程度'] == '大专']
da4['文化程度得分'] = 4
da5 = data.loc[data['文化程度'] == '本科及以上']
da5['文化程度得分'] = 5
da6 = data.loc[data['文化程度'] == '文盲或半文盲']
da6['文化程度得分'] = 0
da7 = data.loc[data['文化程度'].isnull()]
da7['文化程度得分'] = 0
data1 = pd.concat([da1,da2,da3,da4,da5,da6,da7],axis=0,ignore_index=True)
#参数axis=0表示上下合并,1表示左右合并,ignore_index=True表示忽略原来的索引
目前编程水平有限,如果您有较好的方法,也可以留言给我,感谢!

python 数据分类赋值的更多相关文章

  1. python的赋值

    python的赋值其实就是引用,我们用python的id函数看一下: 然而令人蛋疼的事情发生了, 为什么会给一个新的c赋值1,它与上面的a和b的id一样呢. 原来是python会认为一些小的整形会经常 ...

  2. 如何理解 Python 的赋值逻辑

    摘要: 如果你学过 C 语言,那么当你初见 Python 时可能会觉得 Python 的赋值方式略有诡异:好像差不多,但又好像哪里有点不太对劲. 本文比较并解释了这种赋值逻辑上的差异.回答了为什么需要 ...

  3. Python 直接赋值、浅拷贝和深度拷贝全解析

    直接赋值:其实就是对象的引用(别名,其实就是一个人今天叫张三 明天叫张狗子的意思).这个人比较自由单身狗嘛  可以恋爱可以分手  就是一个小屌丝. 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的 ...

  4. Python 的赋值坑 , a=b=c=1???

    原文地址:https://www.v2ex.com/amp/t/443384 Python 的赋值坑 , a=b=c=1??? 今天回答了一个主题, 一不小心进入了一个坑, 耗费了好多时间终于弄懂了我 ...

  5. python 之 赋值和拷贝(你真的了解吗)

    现象:先上一段代码. >>> import copy >>> a = [1,2,3,4,['a','b']] >>> b = a >> ...

  6. python直接赋值,浅拷贝和深拷贝

    本文参考自<Python 直接赋值.浅拷贝和深度拷贝解析> 定义 直接赋值:就是对象的引用(别名) 浅拷贝(copy):拷贝父对象,不拷贝对象内部的子对象 深拷贝(deepcopy):co ...

  7. python中赋值和浅拷贝与深拷贝

    初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~ 预备知识一——python的变量及其存储 在详细的了解python中赋 ...

  8. Python 直接赋值、浅拷贝和深度拷贝区别

    Python 直接赋值.浅拷贝和深度拷贝区别 转自https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-de ...

  9. 关于python中赋值、浅拷贝、深拷贝之间区别的深入分析

    当重新学习了计算机基础课程<数据结构和算法分析>后再来看这篇自己以前写的博文,发现错误百出.python内置数据类型之所以会有这些特性,归根结底是它采用的是传递内存地址的方式,而不是传递真 ...

随机推荐

  1. C# 数组在内存中的存储

    C# 数组是引用类型,那么在内存中是如何存储的呢? 在VS中调试C#程序,如何查看内存.寄存器.反汇编 在这篇文章里看到了如何在VS 中查看内存 先断点打在数组创建后语句那里,点debug->W ...

  2. Ansible 批量管理Windows Server服务器

    Ansible批量管理Windows Server         Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具,  它用Python写成,类似于saltstack和Puppe ...

  3. C# 循环时,操作另外一个进程直到操作完成,循环继续执行

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. java中存储mysql数据库时间类型

    Mysql 与 java 的时间类型 MySql的时间类型有 Java中与之对应的时间类型   date                 java.sql.Date   Datetime        ...

  5. 跨域请求携带cookie

      function ajaxPostRequestCipherMachine(url, param) { var url = url; var dict = { 'ret' : false, 'er ...

  6. CCF CSP 201604-1 折点计数

    题目链接:http://118.190.20.162/view.page?gpid=T42 问题描述 试题编号: 201604-1 试题名称: 折点计数 时间限制: 1.0s 内存限制: 256.0M ...

  7. OO第一单元优化博客

    OO第一单元优化博客 第一次作业: 合并同类项+提正系数项+优化系数指数0/1=满分 第二次作业: 初始想法 一开始是想以\(sin(x)​\)和\(cos(x)​\)的指数作为坐标,在图上画出来就可 ...

  8. python简单制作GIF

    第一步安装工具:imageio (已安装好的页面) 第二步:打开python 插入代码,代码如下. import imageio savename = "C://Users//Thinkpa ...

  9. mysql和oracle分页查询

    MYSQL分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实现分 ...

  10. Linux查看当前目录下文件名中包含指定字符的文件

    find . -type f -name "edaijia* 结果: