有的时候,表格自带的数据根本没有办法满足我们,我们经常会新加一列数据或者对原有的数据进行修改

还是接着上篇文章的数据进行操作

直接赋值

我想算一下每一天的温差

df.loc[:, 'wencha'] = df['wendu_max'] - df['wendu_min']
            wendu_min  wendu_max weather  fengji  wencha
data
2020-01-01 1 15 晴 1 14
2020-01-02 1 16 多云 2 15
2020-01-03 1 17 小雨 4 16
2020-01-04 4 18 阴 2 14
2020-01-05 1 19 大雨 1 18
2020-01-06 3 20 小雨 3 17
2020-01-07 1 21 晴 5 20
2020-01-08 1 22 多云 2 21
2020-01-09 1 23 阴 1 22
2020-01-10 0 24 小雨 3 24
2020-01-11 2 25 多云 4 23

这样就多了一列温差的数据

apply条件添加

我现在想加一个温度类型列,低于20度的是低温,20-24的是中温,25以上的是高温

def temperatureType(df):
if df['wendu_max'] < 20:
return '低温'
elif 24 >= df['wendu_max'] >= 20:
return '中温'
else:
return '高温' df.loc[:, 'wendu_t'] = df.apply(temperatureType, axis=1)
            wendu_min  wendu_max weather  fengji  wencha wendu_t
data
2020-01-01 1 15 晴 1 14 低温
2020-01-02 1 16 多云 2 15 低温
2020-01-03 1 17 小雨 4 16 低温
2020-01-04 4 18 阴 2 14 低温
2020-01-05 1 19 大雨 1 18 低温
2020-01-06 3 20 小雨 3 17 中温
2020-01-07 1 21 晴 5 20 中温
2020-01-08 1 22 多云 2 21 中温
2020-01-09 1 23 阴 1 22 中温
2020-01-10 0 24 小雨 3 24 中温
2020-01-11 2 25 多云 4 23 高温

这里有几个点需要注意:

  • apply里面是函数名而不是函数名()
  • axis=1是列的匹配,比如是通过最高温度进行筛选,最高温度是其中一列
  • axis=0是索引匹配,如果是想通过日期来新加一列,就应该是axis=0

assign多列添加

我想将摄氏度转换成华氏度

df = df.assign(
min_huas=lambda x: x['wendu_min'] * 9 / 5 + 32,
max_huas=lambda x: x['wendu_max'] * 9 / 5 + 32,
)
            wendu_min  wendu_max weather  fengji  min_huas  max_huas
data
2020-01-01 1 15 晴 1 33.8 59.0
2020-01-02 1 16 多云 2 33.8 60.8
2020-01-03 1 17 小雨 4 33.8 62.6
2020-01-04 4 18 阴 2 39.2 64.4
2020-01-05 1 19 大雨 1 33.8 66.2
2020-01-06 3 20 小雨 3 37.4 68.0
2020-01-07 1 21 晴 5 33.8 69.8
2020-01-08 1 22 多云 2 33.8 71.6
2020-01-09 1 23 阴 1 33.8 73.4
2020-01-10 0 24 小雨 3 32.0 75.2
2020-01-11 2 25 多云 4 35.6 77.0

分组添加

如果高低温差大于15度,我就认为温差大,否则就是温差小

df.loc[df['wendu_max'] - df['wendu_min'] > 15, 'wencha'] = '温差大'
df.loc[df['wendu_max'] - df['wendu_min'] <= 15, 'wencha'] = '温差小'
            wendu_min  wendu_max weather  fengji wencha
data
2020-01-01 1 15 晴 1 温差小
2020-01-02 1 16 多云 2 温差小
2020-01-03 1 17 小雨 4 温差大
2020-01-04 4 18 阴 2 温差小
2020-01-05 1 19 大雨 1 温差大
2020-01-06 3 20 小雨 3 温差大
2020-01-07 1 21 晴 5 温差大
2020-01-08 1 22 多云 2 温差大
2020-01-09 1 23 阴 1 温差大
2020-01-10 0 24 小雨 3 温差大
2020-01-11 2 25 多云 4 温差大

5.pandas新增数据列的更多相关文章

  1. pandas 新增数据列(直接赋值、apply,assign、分条件赋值)

    # pandas新增数据列(直接赋值.apply.assign.分条件赋值) # pandas在进行数据分析时,经常需要按照一定条件创建新的数据列,然后进行进一步分析 # 1 直接赋值 # 2 df. ...

  2. Pandas怎样新增数据列

    Pandas怎样新增数据列? 在进行数据分析时,经常需要按照一定条件创建新的数据列,然后进行进一步分析. 直接赋值 df.apply方法 df.assign方法 按条件选择分组分别赋值 0.读取csv ...

  3. Pandas常用操作 - 新增数据列

    初始化测试数据 df = pd.DataFrame({'stu_name': ['Nancy', 'Tony', 'Tim', 'Jack', 'Lucy'], 'stu_age': [17, 16, ...

  4. 【转载】C#如何往DataTable中新增一个数据列

    在C#中的Datatable数据变量的操作过程中,有时候我们需要往现有的DataTable中新增一个自定义数据列,该列在原有的DataTable变量中并不存在,属于用户手工自定义新增的数据列,在往Da ...

  5. Pandas中查看列中数据的种类及个数

    Pandas中查看列中数据的种类及个数 读取数据 import pandas as pd import numpy as np filepath = 'your_file_path.csv' data ...

  6. 【转载】使用Pandas创建数据透视表

    使用Pandas创建数据透视表 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas创建数据透视表 目录 pandas.pivot_table() 创建简单的数据透视表 增加一个行维度(inde ...

  7. Web jquery表格组件 JQGrid 的使用 - 8.Pager、新增数据、查询、刷新、查看数据

    系列索引 Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引 Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数.ColModel API.事件 ...

  8. 【转载】使用Pandas对数据进行筛选和排序

    使用Pandas对数据进行筛选和排序 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas对数据进行筛选和排序 目录: sort() 对单列数据进行排序 对多列数据进行排序 获取金额最小前10项 ...

  9. 【转载】使用Pandas进行数据提取

    使用Pandas进行数据提取 本文转载自:蓝鲸的网站分析笔记 原文链接:使用python进行数据提取 目录 set_index() ix 按行提取信息 按列提取信息 按行与列提取信息 提取特定日期的信 ...

随机推荐

  1. 洛谷 CF1012C Hills (动态规划)

    题目大意:有n个山丘 , 可以在山丘上建房子 , 建房子的要求是 : 该山丘的左右山丘严格的矮于该山丘 (如果有的话),你有一架挖掘机,每单位时间可以给一个山丘挖一个单位的高度,问你想要建造 1,2, ...

  2. 宝贝,来,满足你,二哥告诉你学 Java 应该买什么书?

    (这次的标题是不是有点皮,对模仿好朋友 guide 哥的,我也要皮一皮) 高尔基说过,对吧?宝贝们,"书籍是人类进步的阶梯",不管学什么,买几本心仪的书读一读,帮助还是非常大的.尽 ...

  3. 深入理解RocketMQ(九)---实战(代码)

    一.批量发送消息 即多条消息放入List,一次发送,从而减少网络传输,提高效率 DefaultMQProducer producer = new DefaultMQProducer("bat ...

  4. 每日一题 - 剑指 Offer 32 - III. 从上到下打印二叉树 III

    题目信息 时间: 2019-06-25 题目链接:Leetcode tag:双端队列 难易程度:中等 题目描述: 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右 ...

  5. web测试要点、方法_web端测试大全总结

    一.功能测试 1.1链接测试 链接是web应用系统的一个很重要的特征,主要是用于页面之间切换跳转,指导用户去一些不知道地址的页面的主要手段,链接测试一般关注三点: 1)链接是否按照既定指示那样,确实链 ...

  6. 如何使用CSS创建巧妙的动画提示框

    当你的用户需要一些额外的上下文来放置图标,或者当他们需要一些保证来点击按钮,或者可能是一个复活节彩蛋的标题来搭配一个图片时,工具提示是一个很好的方法来增强用户界面.现在让我们来制作一些动画工具提示,只 ...

  7. vue-devtools的安装

    为了能够很好的检查vue代码,安装vue-devtools; 1.下载devtools插件,建议大家去找正规的路径下载(随便在网页上下载的缺文件,我已入坑),正规地址:https://github.c ...

  8. MySQL 索引结构 hash 有序数组

    MySQL 索引结构 hash 有序数组 除了最常见的树形索引结构,Hash索引也有它的独到之处.   Hash算法 Hash本身是一种函数,又被称为散列函数. 它的思路很简单:将key放在数组里,用 ...

  9. day73 bbs项目☞基本功能实现

    目录 一.登录功能 二.首页搭建 三.admin后台管理 四.图片防盗链 五.个人站点展示 一.登录功能 views.py 0难度,都是基本操作,要熟悉auth模块的使用 # 登录功能 def log ...

  10. Chrome浏览器获取XPATH的方法----通过开发者工具获取

    chrome有自己的开发者工具,可以用这儿来直接获取xpath,都不用担心正确性了. 具体使用步骤如下: 1.在chrome浏览器的右上角有个选择菜单,也就是这个,点一下: 2.在列表最后面有个“更多 ...