文章目录

  • 数据准备工作
  • 一、直接赋值
  • 二、用`df.apply()` 方法
  • 三、用`df.assign()`方法
  • 四、按条件分组后,分别赋值

在Pandas数据处理时,经常要用到添加数据列的方式;这篇文章主要解决的就是在Pandas中添加列的问题;

常用的添加列的方法有如下几种:直接赋值,用df.apply() 方法, 用df.assign()方法,条件分组后,分别赋值;详细说明如下:

数据准备工作

首先读入数据,数据如下,可以复制到本地(保存为CSV),进行练习:

Date,天气,高温,低温,风向,风速
2020/7/16,晴,26,21,东风,2
2020/7/17,多云,25,21,西风,3
2020/7/20,小雨,24,15,东北风,5
2020/7/21,多云转晴,22,17,东风,2
2020/7/22,多云,20,16,西风,1
2020/7/23,雷阵雨,20,20,东北风,3
2020/7/24,多云,26,17,西南风,2
2020/7/27,小雨,26,17,东风,3
2020/7/28,多云转晴,25,24,西风,5
2020/7/29,晴,24,23,东北风,2
2020/7/30,晴,22,20,东风,2
2020/7/31,晴,26,22,东风,3
2020/8/3,晴,25,22,西风,2
2020/8/4,多云转晴,24,16,东北风,3
2020/8/5,多云,22,14,东风,5
2020/8/6,雷阵雨,20,12,西风,2
2020/8/7,小雨,20,13,东北风,1
2020/8/10,多云转晴,26,22,西南风,3

读入代码:

import pandas as pd
df=pd.read_csv(r'./data_select.csv',encoding='gbk') # 这里因为我是用Excel保存成csv的,所以是'gbk',常用的编码为'UTF-8'

一、直接赋值

  • 要求:在低温与高温后增加 ℃ ,在风速后增加‘级’;
df.loc[:,"高温℃"]= df["高温"].astype("str")+'℃'
df.loc[:,"低温℃"]= df["低温"].astype("str")+'℃'
df.loc[:,"风速_new"]= df["风速"].astype("str")+'级'

  • 要求:增加新列,计算出温差;
df.loc[:,'温差'] = df["高温"]- df["低温"]
# 或者这样写也可以
df['温差'] = df["高温"]- df["低温"]

二、用df.apply() 方法

  • 要求:增加一列:温差如何;要求如下:
  • 当昼夜温差大于等于5,则显示:昼夜温差好大!!
  • 当昼夜温差小于等于2,则显示:昼夜温差超小~
  • 其他情况显示:真是普通的一天!

代码如下:

def func_temp(df):if(df["温差"]>=5):return("昼夜温差好大!!")elif(df["温差"]<=2):return("昼夜温差超小~")else:return("真是普通的一天!")df.loc[:,"温差如何"] = df.apply(func_temp,axis=1)

三、用df.assign()方法

df.apply() 类似,可以传入匿名函数,得到最终的结果;例如:

要求:增加一列 风的方向;

df.assign( 风的方向 = lambda x: (x["风向"].str[:-1]))
# 但其实只需要最简单的语句就能实现以上功能,如下:
# df["风的方向"]=df["风向"].str[:-1]

这里不太一样的地方是,df.assign() 不会修改原df, 所以我们需要赋值到一个新的df中才可以;

四、按条件分组后,分别赋值

上面我们是用 df.apply() 实现了为不同温差增加备注列:温度如何; 但其实我们还可以使用更易懂的方式来完成这个功能;注意:其中多个条件需要用 &(与运算) 或者 |(或运算),条件最好用()包起来,以免逻辑不清; 举例如下:

df.loc[df["高温"]-df["低温"]>=5,"温差如何"] = "昼夜温差好大!"
df.loc[df["高温"]-df["低温"]<=2,"温差如何"] = "昼夜温差超小~"
df.loc[(df["高温"]-df["低温"]<5) & (df["高温"]-df["低温"]>2),"温差如何"] = "平静的一天。"

【Pandas总结】第六节 Pandas 添加列相关推荐

  1. 【Pandas总结】第一节 Pandas 简介与Series,DataFrame的创建

    文章目录 一.Pandas 简介 二.Pandas 数据结构 2.1 Series (一维数据) 2.2 DataFrame(二维数据) 三.Series 的创建 3.1 由数创建 3.2 由列表创建 ...

  2. 【Pandas总结】第二节 Pandas 的数据读取_pd.read_csv()的使用详解(非常全面,推荐收藏)

    使用pandas进行数据读取,最常读取的数据格式如下: NO 数据类型 说明 使用方法 1 csv, tsv, txt 可以读取纯文本文件 pd.read_csv 2 excel 可以读取.xls . ...

  3. Pandas简明教程:六、Pandas条件查询

    文章目录 1.基本方法 2.高级查询 3. 可用于修改内容的`where`方法 4.条件检索进阶:快速的查询方法`query` 5.其它检索方法简述 本系列教程教程完整目录: 目前大家公认的一个说法是 ...

  4. 数据分析 第六讲 pandas

    文章目录 数据分析第六讲 pandas 一.pandas介绍 1.学习pandas的作用 2.pandas是什么? 二.pandas常用数据类型 1.Series一维,带标签数据 2.DataFram ...

  5. pandas 取excel 中的某一列_干货Python Pandas 做数据分析之玩转 Excel 报表分析

    本篇文章选自作者在 GitChat 的分享,若有什么问题,可在公众号回复「小助手」添加小助手微信,邀请你进入技术交流群. 各位朋友大家好,非常荣幸和大家聊一聊用 Python Pandas 处理 Ex ...

  6. 上节Pandas学会了吗?那我可教你进阶啦~

    Pandas世界来去自如:pandas的I/O 老生常谈,从基础来看,我们仍然关心的是pandas对于外部数据是如何交互的. 结构化数据输入输出 read_csv 与 to_csv 是一对输入输出工具 ...

  7. pandas系列学习(六):数据聚合

    作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai pandas系列学习(一):pandas入门 pandas系列学习(二):Series pandas系列 ...

  8. pandas使用dropna函数删除dataframe中列非缺失值的个数小于某一阈值的数据列

    pandas使用dropna函数删除dataframe中列非缺失值的个数小于某一阈值的数据列(drop columns with non missing values less than a thre ...

  9. pandas将dataframe中的特定数据列的内容转化为列表list数据(convert dataframe column values into a list)

    pandas将dataframe中的特定数据列的内容转化为列表list数据(convert dataframe column values into a list) 目录 pandas将datafra ...

最新文章

  1. Patent Writing and cultivation of innovation thinking
  2. mysql 执行报错及解决方法 Multi-statement transaction required more than ‘max_binlog_cache_size‘
  3. 10进制转化为16进制以内的转化
  4. PHP5时间相差八小时问题[三种方法]
  5. 文本聚类分析算法_常用的聚类分析算法综述
  6. 矜情作态的拼音及解释
  7. linux定时任务生效_Linux 添加定时任务
  8. 如何在macOS Monterey 中开启对焦模式?
  9. json文件存储 qt_QT开发(五十一)——QtQuick基础
  10. vs 2005 sp1 安装失败的解决方案 安装VS2005 sp1的方法
  11. 如何实现基于Electron的截图识字App(一)
  12. office转pdf和图片实现在线预览
  13. svchost.exe占用网速多
  14. 进制转换应用场景_【Android】单位换算软件来袭,帮你解决生活中所有的进制换算问题,让你轻松秒变大神!...
  15. java中的“回车”与“换行”
  16. ecshop 服务器操作系统,ecshop 云服务器
  17. 工具说明书 - 使用网页生成条码
  18. 如何在二维或三维地图中叠加一个视频(以mapboxgl为例)
  19. 简单日程管理系统,包含用户管理以及多线程定时提醒等功能
  20. 弘辽科技:京东店铺运营技巧分享

热门文章

  1. 互联网、因特网、万维网、广域网、局域网、以太网的区别
  2. 什么是物联网网关及其主要特点
  3. PHP公众号群发用户过多,公众号四次群发用完怎么办?
  4. 使用java开发spark实战
  5. 寻路机器人单片机程序示例_单片机典型案例开发(四)
  6. MySQL中的char和varcharmysql中varchar能存多少汉字、数字,以及varchar(100)和varchar(10)的区别
  7. vue element-ui的嵌套dialog遮罩层
  8. PID控制器的优缺点和周期
  9. Vue + Spring Boot 项目实战(十五):动态加载后台菜单
  10. 足球网页设计制作 简单足球静态HTML网页作品 足球网页作业成品 学生体育运动足球网站模板