1. # pandas新增数据列(直接赋值、apply、assign、分条件赋值)
  2.  
  3. # pandas在进行数据分析时,经常需要按照一定条件创建新的数据列,然后进行进一步分析
  4. # 1 直接赋值
  5. # 2 df.apply方法
  6. # 3 df.assig方法
  7. # 4 按条件选择分组分别赋值
  8.  
  9. import pandas as pd
  10.  
  11. # 0 读取csv数据到dataframe
  12. df = pd.read_csv("beijing_tianqi_2018.csv")
  13. print(df.head())
  14.  
  15. # 1 直接赋值的方法
  16. # 实例:清理温度列,变成数字类型
  17.  
  18. # 替换掉温度的后缀
  19. df.loc[:,'bWendu'] = df['bWendu'].str.replace("℃","").astype('int32')
  20. df.loc[:,'yWendu'] = df['yWendu'].str.replace("℃","").astype('int32')
  21.  
  22. # 实例:计算温差
  23. # 注意:df["bWendu"]其实是一个Series,后面的减法返回的是Series
  24. df.loc[:,"wencha"] = df["bWendu"] - df["yWendu"]
  25. print(df.head())
  26.  
  27. # 2 df.apply方法
  28.  
  29. # 实例:添加一列温度类型:
  30. # 1 如果最高温度大于33度就是高温
  31. # 2 如果最低温度低于-10度就是低温
  32. # 3 否则就是常温
  33. def get_wendu_type(x):
  34. if x["bWendu"] > 33:
  35. return "高温"
  36. if x["yWendu"] < -10:
  37. return "低温"
  38. else:
  39. return "常温"
  40. # 注意需要设置axis ==1 ,这是series的index是columns
  41. df.loc[:,"wendu_type"] = df.apply(get_wendu_type,axis=1)
  42. # 查看温度类型的计数(高温、低温、常温各有多少天)
  43. print(df["wendu_type"].value_counts())
  44.  
  45. # 3 df.assign方法
  46. # 实例:将温度从摄氏度变成华氏度
  47.  
  48. # 可以同时添加多个新的列
  49. df.assign(
  50. yWendu_huashi = lambda x : x['yWendu']*9/5 +32,
  51. bWendu_huashi = lambda x : x['bWendu']*9/5 +32
  52. )
  53. print(df['yWendu_huashi'])
  54.  
  55. # 4 按条件选择分组分别进行赋值
  56. # 按条件选择数据,然后随这部分数据赋值新列
  57. # 实例:高温温差大于10度,则认为温差大
  58.  
  59. # 先创建空列(这是第一种创建新列的方法)
  60. df['wencha_type'] = ""
  61. df.loc[df["bWendu"]-df["yWendu"] > 10,"wencha_type"] = "温差大"
  62. df.loc[df["bWendu"]-df["yWendu"] <=10,"wencha_type"] = "温差正常"
  63.  
  64. df["wencha_type"].value_counts()

pandas 新增数据列(直接赋值、apply,assign、分条件赋值)的更多相关文章

  1. 5.pandas新增数据列

    有的时候,表格自带的数据根本没有办法满足我们,我们经常会新加一列数据或者对原有的数据进行修改 还是接着上篇文章的数据进行操作 直接赋值 我想算一下每一天的温差 df.loc[:, 'wencha'] ...

  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. Layui数据表格/搜索重加载/分条件操作/工具条监听

    <div class="layui-layout layui-layout-admin" style="padding-left: 20px;"> ...

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

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

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

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

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

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

  8. pandas学习(数据分组与分组运算、离散化处理、数据合并)

    pandas学习(数据分组与分组运算.离散化处理.数据合并) 目录 数据分组与分组运算 离散化处理 数据合并 数据分组与分组运算 GroupBy技术:实现数据的分组,和分组运算,作用类似于数据透视表 ...

  9. Pandas DataFrame数据的增、删、改、查

    Pandas DataFrame数据的增.删.改.查 https://blog.csdn.net/zhangchuang601/article/details/79583551 #删除列 df_2 = ...

随机推荐

  1. 史上最详细的XGBoost实战

    史上最详细的XGBoost实战 0. 环境介绍 Python 版 本: 3.6.2 操作系统 : Windows 集成开发环境: PyCharm 1. 安装Python环境 安装Python 首先,我 ...

  2. 源码编译apache设置系统启动失败

    文章为转载,亲试成功. Apache无法自动启动,1.将apachectl文件拷贝到/etc/rc.d/init.d 中,然后在/etc/rc.d/rc5.d/下加入链接即可.命令如下:cp /usr ...

  3. array object

    w object(stdClass)#3 (8) { ["MERCHANT_ID"]=> string(11) "MERCHANT_ID" [" ...

  4. 用流的方式来操作hdfs上的文件

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...

  5. jt获取鼠标指针的位置

    屏幕 screenX和screenY属性表示鼠标在整个显示屏的位置,从屏幕(而不是浏览器)的左上角开始计算的. 页面 pageX和pageY属性表示鼠标指针在这个页面的位置.页面的顶部可能在可见区域之 ...

  6. Zotero引用文献格式(软件学报)

    最近在写一篇综述,要处理大量引用文献,选用Zotero作为文献管理工具.在插入参考文献目录时需要遵循格式,奈何网上找不到<软件学报>对应的csl模板文件,所以决定自己动手修改.在此记录下自 ...

  7. Linux(Ubuntu)常用命令(三)

    查看时间  cal :显示当前日期.  cal :显示全年日历./ cal -y 显示当年日历.  date :显示当前时间. 这几个一般不会用到了解即可. 查看进程信息  ps :显示当前进程. - ...

  8. 【MM系列】SAP ABAP BAPI 和 RFC 的区别

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP BAPI 和 ...

  9. java 泛型深入

    1.<? extends E> <? extends E> 是 Upper Bound(上限) 的通配符,用来限制元素的类型的上限.   赋值 List<? extend ...

  10. c编程过程中错误笔记-& 理解不深啊!

    写了一个函数,删除数组里面的元素,声明如: int student_delete(int *len, struct student stu[]): 在其内部调用了另一个函数 int student_d ...