pandas 新增数据列(直接赋值、apply,assign、分条件赋值)
- # pandas新增数据列(直接赋值、apply、assign、分条件赋值)
- # pandas在进行数据分析时,经常需要按照一定条件创建新的数据列,然后进行进一步分析
- # 1 直接赋值
- # 2 df.apply方法
- # 3 df.assig方法
- # 4 按条件选择分组分别赋值
- import pandas as pd
- # 0 读取csv数据到dataframe
- df = pd.read_csv("beijing_tianqi_2018.csv")
- print(df.head())
- # 1 直接赋值的方法
- # 实例:清理温度列,变成数字类型
- # 替换掉温度的后缀
- df.loc[:,'bWendu'] = df['bWendu'].str.replace("℃","").astype('int32')
- df.loc[:,'yWendu'] = df['yWendu'].str.replace("℃","").astype('int32')
- # 实例:计算温差
- # 注意:df["bWendu"]其实是一个Series,后面的减法返回的是Series
- df.loc[:,"wencha"] = df["bWendu"] - df["yWendu"]
- print(df.head())
- # 2 df.apply方法
- # 实例:添加一列温度类型:
- # 1 如果最高温度大于33度就是高温
- # 2 如果最低温度低于-10度就是低温
- # 3 否则就是常温
- def get_wendu_type(x):
- if x["bWendu"] > 33:
- return "高温"
- if x["yWendu"] < -10:
- return "低温"
- else:
- return "常温"
- # 注意需要设置axis ==1 ,这是series的index是columns
- df.loc[:,"wendu_type"] = df.apply(get_wendu_type,axis=1)
- # 查看温度类型的计数(高温、低温、常温各有多少天)
- print(df["wendu_type"].value_counts())
- # 3 df.assign方法
- # 实例:将温度从摄氏度变成华氏度
- # 可以同时添加多个新的列
- df.assign(
- yWendu_huashi = lambda x : x['yWendu']*9/5 +32,
- bWendu_huashi = lambda x : x['bWendu']*9/5 +32
- )
- print(df['yWendu_huashi'])
- # 4 按条件选择分组分别进行赋值
- # 按条件选择数据,然后随这部分数据赋值新列
- # 实例:高温温差大于10度,则认为温差大
- # 先创建空列(这是第一种创建新列的方法)
- df['wencha_type'] = ""
- df.loc[df["bWendu"]-df["yWendu"] > 10,"wencha_type"] = "温差大"
- df.loc[df["bWendu"]-df["yWendu"] <=10,"wencha_type"] = "温差正常"
- df["wencha_type"].value_counts()
pandas 新增数据列(直接赋值、apply,assign、分条件赋值)的更多相关文章
- 5.pandas新增数据列
有的时候,表格自带的数据根本没有办法满足我们,我们经常会新加一列数据或者对原有的数据进行修改 还是接着上篇文章的数据进行操作 直接赋值 我想算一下每一天的温差 df.loc[:, 'wencha'] ...
- Pandas怎样新增数据列
Pandas怎样新增数据列? 在进行数据分析时,经常需要按照一定条件创建新的数据列,然后进行进一步分析. 直接赋值 df.apply方法 df.assign方法 按条件选择分组分别赋值 0.读取csv ...
- Pandas常用操作 - 新增数据列
初始化测试数据 df = pd.DataFrame({'stu_name': ['Nancy', 'Tony', 'Tim', 'Jack', 'Lucy'], 'stu_age': [17, 16, ...
- Layui数据表格/搜索重加载/分条件操作/工具条监听
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;"> ...
- 【转载】C#如何往DataTable中新增一个数据列
在C#中的Datatable数据变量的操作过程中,有时候我们需要往现有的DataTable中新增一个自定义数据列,该列在原有的DataTable变量中并不存在,属于用户手工自定义新增的数据列,在往Da ...
- Pandas中查看列中数据的种类及个数
Pandas中查看列中数据的种类及个数 读取数据 import pandas as pd import numpy as np filepath = 'your_file_path.csv' data ...
- 【转载】使用Pandas创建数据透视表
使用Pandas创建数据透视表 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas创建数据透视表 目录 pandas.pivot_table() 创建简单的数据透视表 增加一个行维度(inde ...
- pandas学习(数据分组与分组运算、离散化处理、数据合并)
pandas学习(数据分组与分组运算.离散化处理.数据合并) 目录 数据分组与分组运算 离散化处理 数据合并 数据分组与分组运算 GroupBy技术:实现数据的分组,和分组运算,作用类似于数据透视表 ...
- Pandas DataFrame数据的增、删、改、查
Pandas DataFrame数据的增.删.改.查 https://blog.csdn.net/zhangchuang601/article/details/79583551 #删除列 df_2 = ...
随机推荐
- 史上最详细的XGBoost实战
史上最详细的XGBoost实战 0. 环境介绍 Python 版 本: 3.6.2 操作系统 : Windows 集成开发环境: PyCharm 1. 安装Python环境 安装Python 首先,我 ...
- 源码编译apache设置系统启动失败
文章为转载,亲试成功. Apache无法自动启动,1.将apachectl文件拷贝到/etc/rc.d/init.d 中,然后在/etc/rc.d/rc5.d/下加入链接即可.命令如下:cp /usr ...
- array object
w object(stdClass)#3 (8) { ["MERCHANT_ID"]=> string(11) "MERCHANT_ID" [" ...
- 用流的方式来操作hdfs上的文件
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...
- jt获取鼠标指针的位置
屏幕 screenX和screenY属性表示鼠标在整个显示屏的位置,从屏幕(而不是浏览器)的左上角开始计算的. 页面 pageX和pageY属性表示鼠标指针在这个页面的位置.页面的顶部可能在可见区域之 ...
- Zotero引用文献格式(软件学报)
最近在写一篇综述,要处理大量引用文献,选用Zotero作为文献管理工具.在插入参考文献目录时需要遵循格式,奈何网上找不到<软件学报>对应的csl模板文件,所以决定自己动手修改.在此记录下自 ...
- Linux(Ubuntu)常用命令(三)
查看时间 cal :显示当前日期. cal :显示全年日历./ cal -y 显示当年日历. date :显示当前时间. 这几个一般不会用到了解即可. 查看进程信息 ps :显示当前进程. - ...
- 【MM系列】SAP ABAP BAPI 和 RFC 的区别
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP BAPI 和 ...
- java 泛型深入
1.<? extends E> <? extends E> 是 Upper Bound(上限) 的通配符,用来限制元素的类型的上限. 赋值 List<? extend ...
- c编程过程中错误笔记-& 理解不深啊!
写了一个函数,删除数组里面的元素,声明如: int student_delete(int *len, struct student stu[]): 在其内部调用了另一个函数 int student_d ...