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

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

直接赋值

我想算一下每一天的温差

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. nginx web服务器概念了解 配置

    服务器 服务器 服务器是一种提供高效计算的机器,与普通的PC主机相比,具有可观的稳定性,高并发性,可扩展性. 互联网任何一个应用都是以服务器为基础设施的,没有服务器我们就无法访问网络上的任何内容,只能 ...

  2. MFC线程(二):线程同步临界区CRITICAL SECTION

    当多个线程同时使用相同的资源时,由于是并发执行,不能保证先后顺序.所以假如时一个公共变量被几个线程同时使用会造成该变量值的混乱. 下面来举个简单例子. 假如有一个字符数组变量 char g_charA ...

  3. Azure Monitor(二)Log Analytics

    一,引言( 前情回顾) Azure Monitor 包括 Log Analytics 和 Application Insights,其提供的高级工具适用于收集和分析遥测数据,以便最大程度地提高云和本地 ...

  4. Buy a Ticket 【最短路】

    题目 Musicians of a popular band "Flayer" have announced that they are going to "make t ...

  5. jupyter lab最强代码补全插件

    1 简介 提起kite相信不少朋友都有印象,它是一个功能非常强大的代码补全工具,目前可用于Python与javascript,为许多知名的编辑器譬如Vs Code.Pycharm提供对应的插件. 图1 ...

  6. 栈的顺序存储和链式存储c语言实现

    一. 栈 栈的定义:栈是只允许在一端进行插入或删除操作的线性表. 1.栈的顺序存储 栈顶指针:S.top,初始设为-1 栈顶元素:S.data[S.top] 进栈操作:栈不满时,栈顶指针先加1,再到栈 ...

  7. 断路器Hystrix(Ribbon)

    微服务架构中,根据业务划分成若干个服务,各单元应用间通过服务注册与订阅的方式互相依赖,依赖通过远程调用的方式执行,该方式难以避免因网络或自身原因而出现故障或者延迟,从而并不能保证服务的100%可用,此 ...

  8. js统计字符

    问题:    var str1 = "abcdabcabcaabeeeeeee";     var str2 = "fhjdiovjdasklgudsaklfgdaskl ...

  9. 调试HotSpot源代码

    之前的文章在Ubuntu 16.04上编译OpenJDK8的源代码 已经介绍过在Ubuntu上编译OpenJDK8的源代码,这一篇将介绍在Ubuntu上调试OpenJDK8源代码的2种方式. 1.GD ...

  10. 编写优秀CSS代码的8个策略

    编写基本的CSS和HTML是我们作为Web开发人员学习的首要事情之一.然而,我遇到的很多应用程序显然没有人花时间真正考虑前端开发的长久性和可维护性. 我认为这主要是因为许多开发人员对组织CSS / H ...