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

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

直接赋值

我想算一下每一天的温差

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. liunx中组合查询的命令

    今天无聊,把以前的liunx命令拿过练练,尤其是一些组合命令并带有逻辑的.这里的script是一个文件夹. 1.查看一个文件的最后3行的第一行. [root@localhost home]# tail ...

  2. Python实用笔记 (5)使用dictionary和set

    dictionary 通过键值存储,具有极快的查找速度,但占用空间比list大很多 举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list: names = ['Micha ...

  3. dup与dup2函数

    依赖的头文件 #include <unistd.h> 函数定义 int dup(int oldfd); int dup2(int oldfd, int newfd); 函数作用 dup和d ...

  4. 学习Java的Day05

    知识点 关键字,常用类(super,static,final): super 子类对父类的引用,只能在非静态方法中使用 引用父类的成员变量的格式为 super.成员变量名称 引用父类的非静态方法的格式 ...

  5. 计算区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9) 共出现了多少次?

    #include<iostream> using namespace std; int main() { long long start, end , i, check, b, c, cn ...

  6. Chive CTF 2020 - Tiki

    题目状态: OPEN - 正在试图解这道题CLOSED - 这道题还没有打开SOLVED - 解决了!鼓掌撒花! 赛事信息: 起止时间:2020-04-09 01:00 ~ 2020-04-12 01 ...

  7. ES6入门(一)

    目录 ES6入门 (一) let 和 const 命令 let 定义 注意事项 块级作用域 不存在变量提升 let的特点就是存在暂时性死区 特殊情况的暂时性死区 之 ES6函数存在默认值情况 不允许重 ...

  8. Qt-文件系统

    1  简介 参考视频:https://www.bilibili.com/video/BV1XW411x7NU?p=45 参考文档:<Qt教程.docx> 说明:本文主要介绍Qt的文件系统. ...

  9. __FILE__和__DIR__的用法

    dirname(__FILE__)由两部分组成, __FILE__ 魔术变量和 dirname() 函数.__FILE__是当前脚本的绝对路径,通过 dirname() 函数后,就可以获得脚本所在目录 ...

  10. keepalived 热备

    概述 keepalived高可用集群      keepalived最初是为了LVS的,因为LVS无法进行自动检测服务器的节点状态(可以自动部署LVS)     keeplived后来加入VRRP给功 ...