Pandas:DataFrame对象的基础操作方法


Posted in Python onJune 07, 2018

DataFrame对象的创建,修改,合并

import pandas as pd
import numpy as np

创建DataFrame对象

# 创建DataFrame对象
df = pd.DataFrame([1, 2, 3, 4, 5], columns=['cols'], index=['a','b','c','d','e'])
print df
cols
a 1
b 2
c 3
d 4
e 5
df2 = pd.DataFrame([[1, 2, 3],[4, 5, 6]], columns=['col1','col2','col3'], index=['a','b'])
print df2
col1 col2 col3
a 1 2 3
b 4 5 6
df3 = pd.DataFrame(np.array([[1,2],[3,4]]), columns=['col1','col2'], index=['a','b'])
print df3
col1 col2
a 1 2
b 3 4
df4 = pd.DataFrame({'col1':[1,3],'col2':[2,4]},index=['a','b'])
print df4
col1 col2
a 1 2
b 3 4

创建DataFrame对象的数据可以为列表,数组和字典,列名和索引为列表对象

基本操作

# DataFrame对象的基本操作
df2.index
Index([u'a', u'b'], dtype='object')
df2.columns
Index([u'col1', u'col2', u'col3'], dtype='object')
# 根据索引查看数据
df2.loc['a'] 
# 索引为a这一行的数据
# df2.iloc[0] 跟上面的操作等价,一个是根据索引名,一个是根据数字索引访问数据
col1 1
col2 2
col3 3
Name: a, dtype: int64
print df2.loc[['a','b']] # 访问多行数据,索引参数为一个列表对象
col1 col2 col3
a 1 2 3
b 4 5 6
print df.loc[df.index[1:3]]
cols
b 2
c 3
# 访问列数据
print df2[['col1','col3']]
col1 col3
a 1 3
b 4 6

计算

# DataFrame元素求和
# 默认是对每列元素求和
print df2.sum()
col1 5
col2 7
col3 9
dtype: int64
# 行求和
print df2.sum(1)
a 6
b 15
dtype: int64
# 对每个元素乘以2
print df2.apply(lambda x:x*2)
col1 col2 col3
a 2 4 6
b 8 10 12
# 对每个元素求平方(支持ndarray一样的向量化操作)
print df2**2
col1 col2 col3
a 1 4 9
b 16 25 36
列扩充
# 对DataFrame对象进行列扩充
df2['col4'] = ['cnn','rnn']
print df2
col1 col2 col3 col4
a 1 2 3 cnn
b 4 5 6 rnn
# 也可以通过一个新的DataFrame对象来定义一个新列,索引自动对应
df2['col5'] = pd.DataFrame(['MachineLearning','DeepLearning'],index=['a','b'])
print df2
col1 col2 col3 col4  col5
a 1 2 3 cnn MachineLearning
b 4 5 6 rnn DeepLearning

行扩充

# 行进行扩充
print df2.append(pd.DataFrame({'col1':7,'col2':8,'col3':9,'col4':'rcnn','col5':'ReinforcementLearning'},index=['c']))
col1 col2 col3 col4   col5
a 1 2 3 cnn MachineLearning
b 4 5 6 rnn  DeepLearning
c 7 8 9 rcnn ReinforcementLearning

注意!

# 如果在进行 行扩充时候没有,指定index的参数,索引会被数字取代
print df2.append({'col1':10,'col2':11,'col3':12,'col4':'frnn','col5':'DRL'},ignore_index=True)
col1 col2 col3 col4  col5
0 1 2 3 cnn MachineLearning
1 4 5 6 rnn DeepLearning
2 10 11 12 frnn  DRL
# 以上的行扩充,并没有真正修改,df2这个DataFrame对象,除非
df2 = df2.append(pd.DataFrame({'col1':7,'col2':8,'col3':9,'col4':'rcnn','col5':'ReinforcementLearning'},index=['c']))
print df2
col1 col2 col3 col4   col5
a 1 2 3 cnn MachineLearning
b 4 5 6 rnn  DeepLearning
c 7 8 9 rcnn ReinforcementLearning
c 7 8 9 rcnn ReinforcementLearning
print df2.loc['c']
col1 col2 col3 col4   col5
c 7 8 9 rcnn ReinforcementLearning
c 7 8 9 rcnn ReinforcementLearning

DataFrame对象的合并

# DataFrame 对象的合并
df_a = pd.DataFrame(['wang','jing','hui','is','a','master'],columns=['col6'],index=['a','b','c','d','e','f'])
print df_a
col6
a wang
b jing
c hui
d is
e a
f master
# 默认合并,只保留dfb中的全部索引
dfb = pd.DataFrame([1,2,4,5,6,7],columns=['col1'],index=['a','b','c','d','f','g'])
print dfb.join(df_a)
col1 col6
a 1 wang
b 2 jing
c 4 hui
d 5 is
f 6 master
g 7 NaN
# 默认合并之接受索引已经存在的值
# 通过指定参数 how,指定合并的方式
print dfb.join(df_a,how='inner') # 合并两个DataFrame对象的交集
col1 col6
a 1 wang
b 2 jing
c 4 hui
d 5 is
f 6 master
# 合并两个DataFrame对象的并集
print dfb.join(df_a,how='outer')
col1 col6
a 1.0 wang
b 2.0 jing
c 4.0 hui
d 5.0 is
e NaN a
f 6.0 master
g 7.0 NaN

以上这篇Pandas:DataFrame对象的基础操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现一个简单的MySQL类
Jan 07 Python
Python基于csv模块实现读取与写入csv数据的方法
Jan 18 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
python3 cvs将数据读取为字典的方法
Dec 22 Python
Python控制Firefox方法总结
Jun 03 Python
python网络编程 使用UDP、TCP协议收发信息详解
Aug 29 Python
手机使用python操作图片文件(pydroid3)过程详解
Sep 25 Python
Python *args和**kwargs用法实例解析
Mar 02 Python
如何利用python web框架做文件流下载的实现示例
Jun 02 Python
pytorch快速搭建神经网络_Sequential操作
Jun 17 Python
Python实现科学占卜 让视频自动打码
Apr 09 Python
python内置模块之上下文管理contextlib
Jun 14 Python
Python中偏函数用法示例
Jun 07 #Python
网红编程语言Python将纳入高考你怎么看?
Jun 07 #Python
python指定写入文件时的编码格式方法
Jun 07 #Python
Python实现的爬虫刷回复功能示例
Jun 07 #Python
异步任务队列Celery在Django中的使用方法
Jun 07 #Python
浅谈python中对于json写入txt文件的编码问题
Jun 07 #Python
Python查看微信撤回消息代码
Jun 07 #Python
You might like
php遍历删除整个目录及文件的方法
2015/03/13 PHP
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
深入理解vue-loader如何使用
2017/06/06 Javascript
详解webpack介绍&安装&常用命令
2017/06/29 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
js字符串类型String常用操作实例总结
2019/07/05 Javascript
python 七种邮件内容发送方法实例
2014/04/22 Python
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
利用python实现命令行有道词典的方法示例
2017/01/31 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
python实现list由于numpy array的转换
2018/04/04 Python
对python函数签名的方法详解
2019/01/22 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
简单分析python的类变量、实例变量
2019/08/23 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
Python调用JavaScript代码的方法
2020/10/27 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
台湾生鲜宅配:大口市集
2017/10/14 全球购物
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
COACH德国官方网站:纽约现代奢侈品牌,1941年
2018/06/09 全球购物
介绍下Lucene建立索引的过程
2016/03/02 面试题
农行实习自我鉴定
2013/09/22 职场文书
农业开发项目建议书
2014/05/16 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
商务邀请函
2015/01/30 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
python 提取html文本的方法
2021/05/20 Python
Python实现抖音热搜定时爬取功能
2022/03/16 Python
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL