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

首先,会想到用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. java学习之匿名内部类

    /*匿名内部类 * * 一般用于抽象类和接口 * 因为他们不能实例化对象所以可以通过匿名内部类来帮助他们实例化 * 下面demo是抽象类的例子 * * */ abstract class Cat{ a ...

  2. Linux运维跳槽40道面试精华题

    Linux运维跳槽40道面试精华题 运维派 3天前 1.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护 ...

  3. vue组件弹窗

    定义弹窗组件 先写一个普通的vue组件,其显示的内容就是弹窗的内容. 文件的位置 /src/views/toast/toast.vue <template> <div class=& ...

  4. URLs ...

    各浏览器对ES6的支持 https://blog.csdn.net/lpw_cn/article/details/84789183 http://kangax.github.io/compat-tab ...

  5. HashMap 源码分析

    static final int DEFAULT_INITIAL_CAPACITY = 16;  默认容量 static final int MAXIMUM_CAPACITY = 1073741824 ...

  6. final关键字的几种用法

    在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们来了解一下final ...

  7. JS 画框操作

    Js中,我们有时候需要对图片进行操作,包括画框,其实对于UI前端来说挺简单的,没有网上说的那样复杂,这里说明一下 <div style="width:80%;height:300px; ...

  8. spring mvc 配置之 context:annotation-config vs component-scan

    <context:annotation-config/> spring的注解@Resource.@Autowire, @Required and @Qualifier 等注解只是一个提示, ...

  9. C# 反射 Type.GetType()

    对于外部调用的动态库应用反射时要用到Assembly.LoadFile(),然后才是获取类型.执行方法等;当用反射创建当前程序集中对象实例或执行某个类下静态方法时只需通过Type.GetType(&q ...

  10. 4、网上收集Storm 讲解图

    1.Storm与Kafka集成 我们知道storm的作用主要是进行流式计算,对于源源不断的均匀数据流流入处理是非常有效的, 而现实生活中大部分场景并不是均匀的数据流,而是时而多时而少的数据流入,这种情 ...