pandas-赋值操作
1,pandas操作主要有对指定位置的赋值,如上一篇中的数据选择一样,根据loc,iloc,ix选择指定位置,直接赋值
2,插入,insert方法,插入行和列
3,添加
4,删除 drop方法
5,弹出 pop方法
In [1]:
import pandas as pd
import numpy as np
In [53]:
dates = np.arange(20190809,20190815)
df1 = pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=["A","B","C","D"])
df1
Out[53]:
| A | B | C | D | |
|---|---|---|---|---|
| 20190809 | 0 | 1 | 2 | 3 |
| 20190810 | 4 | 5 | 6 | 7 |
| 20190811 | 8 | 9 | 10 | 11 |
| 20190812 | 12 | 13 | 14 | 15 |
| 20190813 | 16 | 17 | 18 | 19 |
| 20190814 | 20 | 21 | 22 | 23 |
In [20]:
df1.iloc[2,2]
Out[20]:
10
In [44]:
df1.iloc[2,2] = 100
df1
Out[44]:
| A | B | C | D | |
|---|---|---|---|---|
| 20190809 | 0 | 1 | 2 | 3 |
| 20190810 | 4 | 5 | 6 | 7 |
| 20190811 | 8 | 9 | 100 | 11 |
| 20190812 | 12 | 13 | 14 | 15 |
| 20190813 | 16 | 17 | 18 | 19 |
| 20190814 | 20 | 21 | 22 | 23 |
In [40]:
df1.loc[20190810,"B"]=200
df1
Out[40]:
| A | B | C | D | |
|---|---|---|---|---|
| 20190809 | 0 | 1 | 2 | 3 |
| 20190810 | 4 | 200 | 6 | 7 |
| 20190811 | 8 | 9 | 10 | 11 |
| 20190812 | 12 | 13 | 14 | 15 |
| 20190813 | 16 | 17 | 18 | 19 |
| 20190814 | 20 | 21 | 22 | 23 |
In [54]:
df1[df1.A>10]=0
df1
Out[54]:
| A | B | C | D | |
|---|---|---|---|---|
| 20190809 | 0 | 1 | 2 | 3 |
| 20190810 | 4 | 5 | 6 | 7 |
| 20190811 | 8 | 9 | 10 | 11 |
| 20190812 | 0 | 0 | 0 | 0 |
| 20190813 | 0 | 0 | 0 | 0 |
| 20190814 | 0 | 0 | 0 | 0 |
In [55]:
df1.A[df1.A==0]=100
df1
Out[55]:
| A | B | C | D | |
|---|---|---|---|---|
| 20190809 | 100 | 1 | 2 | 3 |
| 20190810 | 4 | 5 | 6 | 7 |
| 20190811 | 8 | 9 | 10 | 11 |
| 20190812 | 100 | 0 | 0 | 0 |
| 20190813 | 100 | 0 | 0 | 0 |
| 20190814 | 100 | 0 | 0 | 0 |
In [56]:
#插入一列
df1["E"]=10
df1
Out[56]:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 20190809 | 100 | 1 | 2 | 3 | 10 |
| 20190810 | 4 | 5 | 6 | 7 | 10 |
| 20190811 | 8 | 9 | 10 | 11 | 10 |
| 20190812 | 100 | 0 | 0 | 0 | 10 |
| 20190813 | 100 | 0 | 0 | 0 | 10 |
| 20190814 | 100 | 0 | 0 | 0 | 10 |
In [59]:
df1["F"]=pd.Series([1,2,3,4,5,6],index=dates)
df1
Out[59]:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 20190809 | 100 | 1 | 2 | 3 | 10 | 1 |
| 20190810 | 4 | 5 | 6 | 7 | 10 | 2 |
| 20190811 | 8 | 9 | 10 | 11 | 10 | 3 |
| 20190812 | 100 | 0 | 0 | 0 | 10 | 4 |
| 20190813 | 100 | 0 | 0 | 0 | 10 | 5 |
| 20190814 | 100 | 0 | 0 | 0 | 10 | 6 |
In [62]:
#添加一行
df1.loc[20190815,["A","B","C"]]=[5,6,8]
df1
Out[62]:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 20190809 | 100.0 | 1.0 | 2.0 | 3.0 | 10.0 | 1.0 |
| 20190810 | 4.0 | 5.0 | 6.0 | 7.0 | 10.0 | 2.0 |
| 20190811 | 8.0 | 9.0 | 10.0 | 11.0 | 10.0 | 3.0 |
| 20190812 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 4.0 |
| 20190813 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 5.0 |
| 20190814 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 6.0 |
| 20190815 | 5.0 | 6.0 | 8.0 | NaN | NaN | NaN |
In [65]:
s1=pd.Series([1,2,3,4,5,6],index=["A","B","C","D","E","F"])
s1.name="S1"
df2 = df1.append(s1)
df2
Out[65]:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 20190809 | 100.0 | 1.0 | 2.0 | 3.0 | 10.0 | 1.0 |
| 20190810 | 4.0 | 5.0 | 6.0 | 7.0 | 10.0 | 2.0 |
| 20190811 | 8.0 | 9.0 | 10.0 | 11.0 | 10.0 | 3.0 |
| 20190812 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 4.0 |
| 20190813 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 5.0 |
| 20190814 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 6.0 |
| 20190815 | 5.0 | 6.0 | 8.0 | NaN | NaN | NaN |
| S1 | 1.0 | 2.0 | 3.0 | 4.0 | 5.0 | 6.0 |
In [67]:
#插入一列
df1.insert(1,"G",df2["E"])
df1
Out[67]:
| A | G | B | C | D | E | F | |
|---|---|---|---|---|---|---|---|
| 20190809 | 100.0 | 10.0 | 1.0 | 2.0 | 3.0 | 10.0 | 1.0 |
| 20190810 | 4.0 | 10.0 | 5.0 | 6.0 | 7.0 | 10.0 | 2.0 |
| 20190811 | 8.0 | 10.0 | 9.0 | 10.0 | 11.0 | 10.0 | 3.0 |
| 20190812 | 100.0 | 10.0 | 0.0 | 0.0 | 0.0 | 10.0 | 4.0 |
| 20190813 | 100.0 | 10.0 | 0.0 | 0.0 | 0.0 | 10.0 | 5.0 |
| 20190814 | 100.0 | 10.0 | 0.0 | 0.0 | 0.0 | 10.0 | 6.0 |
| 20190815 | 5.0 | NaN | 6.0 | 8.0 | NaN | NaN | NaN |
In [68]:
g=df1.pop("G")
df1.insert(6,"G",g)
df1
Out[68]:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 20190809 | 100.0 | 1.0 | 2.0 | 3.0 | 10.0 | 1.0 | 10.0 |
| 20190810 | 4.0 | 5.0 | 6.0 | 7.0 | 10.0 | 2.0 | 10.0 |
| 20190811 | 8.0 | 9.0 | 10.0 | 11.0 | 10.0 | 3.0 | 10.0 |
| 20190812 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 4.0 | 10.0 |
| 20190813 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 5.0 | 10.0 |
| 20190814 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 6.0 | 10.0 |
| 20190815 | 5.0 | 6.0 | 8.0 | NaN | NaN | NaN | NaN |
In [69]:
#删除列
del df1["G"]
df1
Out[69]:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 20190809 | 100.0 | 1.0 | 2.0 | 3.0 | 10.0 | 1.0 |
| 20190810 | 4.0 | 5.0 | 6.0 | 7.0 | 10.0 | 2.0 |
| 20190811 | 8.0 | 9.0 | 10.0 | 11.0 | 10.0 | 3.0 |
| 20190812 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 4.0 |
| 20190813 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 5.0 |
| 20190814 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 6.0 |
| 20190815 | 5.0 | 6.0 | 8.0 | NaN | NaN | NaN |
In [70]:
df2 = df1.drop(["A","B"],axis=1)
df1
Out[70]:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 20190809 | 100.0 | 1.0 | 2.0 | 3.0 | 10.0 | 1.0 |
| 20190810 | 4.0 | 5.0 | 6.0 | 7.0 | 10.0 | 2.0 |
| 20190811 | 8.0 | 9.0 | 10.0 | 11.0 | 10.0 | 3.0 |
| 20190812 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 4.0 |
| 20190813 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 5.0 |
| 20190814 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 6.0 |
| 20190815 | 5.0 | 6.0 | 8.0 | NaN | NaN | NaN |
In [71]:
df2
Out[71]:
| C | D | E | F | |
|---|---|---|---|---|
| 20190809 | 2.0 | 3.0 | 10.0 | 1.0 |
| 20190810 | 6.0 | 7.0 | 10.0 | 2.0 |
| 20190811 | 10.0 | 11.0 | 10.0 | 3.0 |
| 20190812 | 0.0 | 0.0 | 10.0 | 4.0 |
| 20190813 | 0.0 | 0.0 | 10.0 | 5.0 |
| 20190814 | 0.0 | 0.0 | 10.0 | 6.0 |
| 20190815 | 8.0 | NaN | NaN | NaN |
In [73]:
#删除行
df2=df1.drop([20190810,20190812],axis=0)
df1
Out[73]:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 20190809 | 100.0 | 1.0 | 2.0 | 3.0 | 10.0 | 1.0 |
| 20190810 | 4.0 | 5.0 | 6.0 | 7.0 | 10.0 | 2.0 |
| 20190811 | 8.0 | 9.0 | 10.0 | 11.0 | 10.0 | 3.0 |
| 20190812 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 4.0 |
| 20190813 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 5.0 |
| 20190814 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 6.0 |
| 20190815 | 5.0 | 6.0 | 8.0 | NaN | NaN | NaN |
In [74]:
df2
Out[74]:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 20190809 | 100.0 | 1.0 | 2.0 | 3.0 | 10.0 | 1.0 |
| 20190811 | 8.0 | 9.0 | 10.0 | 11.0 | 10.0 | 3.0 |
| 20190813 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 5.0 |
| 20190814 | 100.0 | 0.0 | 0.0 | 0.0 | 10.0 | 6.0 |
| 20190815 | 5.0 | 6.0 | 8.0 | NaN | NaN | NaN |
pandas-赋值操作的更多相关文章
- 数据分析06 /pandas高级操作相关案例:人口案例分析、2012美国大选献金项目数据分析
数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 目录 数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 1. ...
- Pandas 常见操作详解
Pandas 常见操作详解 很多人有误解,总以为Pandas跟熊猫有点关系,跟gui叔创建Python一样觉得Pandas是某某奇葩程序员喜欢熊猫就以此命名,简单介绍一下,Pandas的命名来自于面板 ...
- 深入理解Javascript--作用域和赋值操作
作用域作为一个最基础的功能存在于各种编程语言中,它使得我们的编程更加灵活有趣.其基础功能就是存储变量中的值,然后可以对值进行访问和修改. 可能我们都知道作用域的一些概念,以及其一些扩展的一些内容闭包等 ...
- jquery select取值,赋值操作
select">jquery select取值,赋值操作 一.获取Select 获取select 选中的 text : $("#ddlRegType").find( ...
- JavaScript对象属性赋值操作的逻辑
对象进行属性赋值操作时,其执行逻辑如下所示: 1. 当前对象中是否有该属性?有,进行赋值操作:没有,进行下一步判断. 2. 对象的原型链中是否有该属性?没有,在当前对象上创建该属性,并赋值:有,进行下 ...
- Javascript对象赋值操作
首先,我们还是举个例子来说明对象赋值操作的问题吧: ps: 本文默认约定log = console.log function A(){} A.prototype.x = 10; var a1 = ne ...
- 千万不要在JS中使用连等赋值操作
前言 文章标题这句话原本是在国外某JavaScript规范里看到的,当时并没有引起足够的重视,直到最近一次出现了bug发现JS里的连等赋值操作的特色(坑). 网上搜索一番发现一个非常好的连等赋值的(来 ...
- Angularjs总结(五)指令运用及常用控件的赋值操作
1.常用指令 <div ng-controller="jsyd-controller"> <div style="float:left;width:10 ...
- C风格字符串和C++ string 对象赋值操作的性能比较
<<C++ Primer>> 第四版 Exercise Section 4.3.1 部分Exercise 4.2.9 习题如下: 在自己本机执行如下程序,记录程序执行时间: # ...
- 【转】千万不要在JS中使用连等赋值操作
原文链接 千万不要在JS中使用连等赋值操作 目录 前言 赋值顺序? 连续赋值能拆开写么? 后记 前言 文章标题这句话原本是在国外某JavaScript规范里看到的,当时并没有引起足够的重视,直到最 ...
随机推荐
- Linux基础命令01
绝对路径:从“/”根目录下开始 常用的一些命令选项 ls ls :使用方式 ls {空格}选项 {空格}参数 (全写为list)(等同于dir) 列出当前目录下所有的文件,包括隐藏文件 ls -a ...
- 腾讯数据安全专家谈联邦学习开源项目FATE:通往隐私保护理想未来的桥梁
数据孤岛.数据隐私以及数据安全,是目前人工智能和云计算在大规模产业化应用过程中绕不开的“三座大山”. “联邦学习”作为新一代的人工智能算法,能在数据不出本地的情况下,实现共同建模,提升AI模型的效果, ...
- IDEA中使用Sqlite3
去maven下载驱动包 ( jar包 ) 下载地址:http://mvnrepository.com/artifact/org.xerial/sqlite-jdbc/3.23.1 打开IDEA 创建 ...
- jcc
常用的jcc指令表
- bat脚本休眠时间技巧
例子: @echo off set /a i=1 :c adb connect 192.168.1.109&ping -n 1 123.45.67.89 -w 10000>nul if ...
- Game HDU - 5242 树链思想
GameHDU - 5242 题目大意:一个游戏有n个场景形成了棵有根树,根节点是1,每个场景都有它的权值.然后一个人可以选择其中K个分支来走,而每个场景的权重只算一遍,问最大的权值和. 一开始想叉了 ...
- 推荐系统系列(三):FNN理论与实践
背景 在FM之后出现了很多基于FM的升级改造工作,由于计算复杂度等原因,FM通常只对特征进行二阶交叉.当面对海量高度稀疏的用户行为反馈数据时,二阶交叉往往是不够的,三阶.四阶甚至更高阶的组合交叉能够进 ...
- 关于自定义sparkSQL数据源(Hbase)操作中遇到的坑
自定义sparkSQL数据源的过程中,需要对sparkSQL表的schema和Hbase表的schema进行整合: 对于spark来说,要想自定义数据源,你可以实现这3个接口: BaseRelatio ...
- JavaWeb_(Hibernate框架)Hibernate中事务
Hibernate中事务 事务的性质 事物的隔离级别 配置事务的隔离级别 事务的性质 原子性:原子,不可再分,一个操作不能分为更小的操作,要么全都执行,要么全不执行. 一致性:事务在完成时,必须使得所 ...
- CodeForces 714E Sonya and Problem Wihtout a Legend(单调数列和DP的小研究)
题意:给你n个数字,每个数字可以加减任何数字,付出变化差值的代价,求最后整个序列是严格单调递增的最小的代价. 首先我们要将这个题目进行转化,因为严格单调下是无法用下面这个dp的方法的,因此我们转化成非 ...