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

# pandas在进行数据分析时,经常需要按照一定条件创建新的数据列,然后进行进一步分析
# 1 直接赋值
# 2 df.apply方法
# 3 df.assig方法
# 4 按条件选择分组分别赋值 import pandas as pd # 0 读取csv数据到dataframe
df = pd.read_csv("beijing_tianqi_2018.csv")
print(df.head()) # 1 直接赋值的方法
# 实例:清理温度列,变成数字类型 # 替换掉温度的后缀
df.loc[:,'bWendu'] = df['bWendu'].str.replace("℃","").astype('int32')
df.loc[:,'yWendu'] = df['yWendu'].str.replace("℃","").astype('int32') # 实例:计算温差
# 注意:df["bWendu"]其实是一个Series,后面的减法返回的是Series
df.loc[:,"wencha"] = df["bWendu"] - df["yWendu"]
print(df.head()) # 2 df.apply方法 # 实例:添加一列温度类型:
# 1 如果最高温度大于33度就是高温
# 2 如果最低温度低于-10度就是低温
# 3 否则就是常温
def get_wendu_type(x):
if x["bWendu"] > 33:
return "高温"
if x["yWendu"] < -10:
return "低温"
else:
return "常温"
# 注意需要设置axis ==1 ,这是series的index是columns
df.loc[:,"wendu_type"] = df.apply(get_wendu_type,axis=1)
# 查看温度类型的计数(高温、低温、常温各有多少天)
print(df["wendu_type"].value_counts()) # 3 df.assign方法
# 实例:将温度从摄氏度变成华氏度 # 可以同时添加多个新的列
df.assign(
yWendu_huashi = lambda x : x['yWendu']*9/5 +32,
bWendu_huashi = lambda x : x['bWendu']*9/5 +32
)
print(df['yWendu_huashi']) # 4 按条件选择分组分别进行赋值
# 按条件选择数据,然后随这部分数据赋值新列
# 实例:高温温差大于10度,则认为温差大 # 先创建空列(这是第一种创建新列的方法)
df['wencha_type'] = ""
df.loc[df["bWendu"]-df["yWendu"] > 10,"wencha_type"] = "温差大"
df.loc[df["bWendu"]-df["yWendu"] <=10,"wencha_type"] = "温差正常" 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. VMware 15 搭建MacOS 10.14教程

    写于2018.12.23 教程原文链接:https://pan.baidu.com/s/1wvNYg_MQH_lwewKbpCQ5_Q ———————————————————————————————— ...

  2. linux管理权限

    1.linux命令查询 root id 2.切换用户 su - xiaobai 一定要加"  -  "这个会将你的所有环境变量都带过来 3.root用户切换普通用户不需要输入密码反 ...

  3. 使用xshell连接Ubuntu虚拟机

    1.下载安装VMware软件,可以试用. 2.新建虚拟机,选择典型安装,这里安装Ubuntu16.04 LTS,注意选择网络连接时设置为 桥接模式,在“编辑”--“虚拟网络编辑器”中将DHCP 池中的 ...

  4. LeetCode 103——二叉树的锯齿形层次遍历

    1. 题目 2. 解答 定义两个栈 s_l_r.s_r_l 分别负责从左到右和从右到左遍历某一层的节点,用标志变量 flag 来控制具体情况,根节点所在层 flag=1 表示从左到右遍历,每隔一层改变 ...

  5. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_02 泛型_2_使用泛型的好处

    用一个案例说明使用泛型和不是用泛型的区别 这里的ArrayList没写数据类型,不写就是默认Object 多态的弊端,不能使用子类特有的方法 向下转型,转换为String类型,才能使用length 不 ...

  6. Eclipse java web项目 ,导入IntelliJ IDEA 完整操作!

    1.如图,这是一个ec项目,是一个ssh框架,搭建一个后台, 我们在idea 新建一个项目:new - project from Existing sources... 要是不放心,你可以做一个文件备 ...

  7. linux下vscode备忘

    vscode如何自定义,如何方便地编写c/c++vscode支持vim.sublime快捷键,在设置->keymap可以安装相应插件vscode默认的快捷键支持自定义,打开keyboard sh ...

  8. 《Selenium 2自动化测试实战 基于Python语言》中发送最新邮件无内容问题的解决方法

    虫师的<Selenium 2自动化测试实战 基于Python语言>是我自动化测试的启蒙书 也是我推荐的自动化测试入门必备书,但是书中有一处明显的错误,会误导很多读者,这处错误就是第8章自动 ...

  9. IDEA-关闭自动保存&标志修改文件为星号(一)

    IDEA优化 intellij 关闭自动保存

  10. JAVA调用shell脚本利用ansible修改多节点上的redis参数

    创建hosts文件 创建ansible-playbook执行时所用到的hosts文件,例如 /etc/redis/hosts 利用shell命令根据传入的host名和地址写入hosts文件: #set ...