Python Pandas 对列/行进行选择,增加,删除操作


Posted in Python onMay 17, 2020

一、列操作

1.1 选择列

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
  'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d)
print (df ['one'])
# 选择其中一列进行显示,列长度为最长列的长度
# 除了 index 和 数据,还会显示 列表头名,和 数据 类型

运行结果:

a    1.0
b    2.0
c    3.0
d    NaN
Name: one, dtype: float64

1.2 增加列

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
  'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d)

# Adding a new column to an existing DataFrame object with column label by passing new series

print ("Adding a new column by passing as Series:")
df['three']=pd.Series([10,30,20],index=['a','c','b'])
print(df)
# 增加列后进行显示,其中 index 用于对应到该列 元素 位置(所以位置可以不由 列表 中的顺序进行指定)

print ("Adding a new column using the existing columns in DataFrame:")
df['four']=df['one']+df['two']+df['three']
print(df)
# 我们选定列后,直接可以对整个列的元素进行批量运算操作,这里 NaN 与其他元素相加后,还是 NaN

运行结果:

Adding a new column by passing as Series:
   one  two  three
a  1.0    1   10.0
b  2.0    2   20.0
c  3.0    3   30.0
d  NaN    4    NaN
Adding a new column using the existing columns in DataFrame:
   one  two  three  four
a  1.0    1   10.0  12.0
b  2.0    2   20.0  24.0
c  3.0    3   30.0  36.0
d  NaN    4    NaN   NaN

1.3 删除列(del 和 pop 函数)

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
  'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']),
  'three' : pd.Series([10,20,30], index=['a','b','c'])}

df = pd.DataFrame(d)
print ("Our dataframe is:")
print(df)

# 使用 del 函数
print ("Deleting the first column using DEL function:")
del(df['one'])
print(df)

# 使用 pop 函数
print ("Deleting another column using POP function:")
df_2=df.pop('two') # 将一列 pop 到新的 dataframe
print(df_2)
print(df)

运行结果:

Our dataframe is:
   one  two  three
a  1.0    1   10.0
b  2.0    2   20.0
c  3.0    3   30.0
d  NaN    4    NaN
Deleting the first column using DEL function:
   two  three
a    1   10.0
b    2   20.0
c    3   30.0
d    4    NaN
Deleting another column using POP function:
   three
a   10.0
b   20.0
c   30.0
d    NaN
POP column:
a    1
b    2
c    3
d    4
Name: two, dtype: int64

二、行操作

2.1 选择行

2.1.1 通过 label 选择行(loc 函数)

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
  'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d)
print(df.loc['b']) # 显示这一行中,对应表头 下的 对应数据,同时显示 行 index 和 数据类型

运行结果:

one    2.0
two    2.0
Name: b, dtype: float64

2.1.2 通过序号选择行(iloc 函数)

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
  'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d)
print(df.iloc[2]) # 序号 2 对应的是第 3 行的数据

运行结果:

one    3.0
two    3.0
Name: c, dtype: float64

2.1.3 通过序号选择行切片

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
  'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d)
print(df[2:4]) # 这里选择第 3 到 第 4 行,与 Python 切片一致,不需要函数,直接切片即可

运行结果:

   one  two
c  3.0    3
d  NaN    4

2.2 增加行(append 函数)

# 通过 append 函数
df = pd.DataFrame([[1, 2], [3, 4]], columns = ['a','b'])
df2 = pd.DataFrame([[5, 6], [7, 8]], columns = ['a','b'])

df = df.append(df2)
print(df) # 这里相当于把 第二个 dataframe 与第一个进行拼接,默认的 index 都是 0 1
print(df.loc[0]) # 这里有两行的 index 是 0

运行结果:

   a  b
0  1  2
1  3  4
0  5  6
1  7  8
   a  b
0  1  2
0  5  6

2.3 删除行(drop 函数)

# 通过 drop 函数
df = pd.DataFrame([[1, 2], [3, 4]], columns = ['a','b'])
df2 = pd.DataFrame([[5, 6], [7, 8]], columns = ['a','b'])

df = df.append(df2)

df = df.drop(0) # 这里有两个行标签为 0,所以直接删除了 2 行
print(df)

运行结果:

   a  b
1  3  4
1  7  8

到此这篇关于Python Pandas 对列/行进行选择,增加,删除操作的文章就介绍到这了,更多相关Python Pandas行列选择增加删除内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
实例解析Python中的__new__特殊方法
Jun 02 Python
python list排序的两种方法及实例讲解
Mar 20 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
Python 监测文件是否更新的方法
Jun 10 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
python 并发下载器实现方法示例
Nov 22 Python
Python制作简易版小工具之计算天数的实现思路
Feb 13 Python
详解pandas中iloc, loc和ix的区别和联系
Mar 09 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 20 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
May 17 #Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 #Python
python 实现PIL模块在图片画线写字
May 16 #Python
在python image 中实现安装中文字体
May 16 #Python
Python 判断时间是否在时间区间内的实例
May 16 #Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 #Python
Python填充任意颜色,不同算法时间差异分析说明
May 16 #Python
You might like
一个php Mysql类 可以参考学习熟悉下
2009/06/21 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
JS数组reduce()方法原理及使用技巧解析
2020/07/14 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
操作Windows注册表的简单的Python程序制作教程
2015/04/07 Python
总结python爬虫抓站的实用技巧
2016/08/09 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
简单实现python收发邮件功能
2018/01/05 Python
在python中pandas的series合并方法
2018/11/12 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
python中return如何写
2020/06/18 Python
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
火锅店创业计划书范文
2014/02/02 职场文书
就业推荐表自我鉴定
2014/03/21 职场文书
团队拓展活动方案
2014/08/28 职场文书
2014年四风问题个人对照自查剖析材料
2014/09/15 职场文书
2015年暑假生活总结
2015/07/13 职场文书
物资采购管理制度
2015/08/06 职场文书
被委托人身份证明
2015/08/07 职场文书
观看《筑梦中国》纪录片心得体会
2016/01/18 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python
Ajax异步刷新功能及简单案例
2021/11/20 Javascript
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python