pandas模块篇(之三)
今日内容概要
目标:将Pandas尽量结束
- 如何读取外部excel文件数据到DataFrame中
- 针对DataFrame的常用数据操作
- 索引与切片
- 操作DataFrame的字段名称
- 时间对象序列操作
- 数据分组与聚合
- 练习题
今日内容详细
如何读取外部excel文件数据到DataFrame中
df = pd.read_csv('douban_movie.csv') # 由于当前文件跟excel文件在同一个目录下所以可以直接写文件名
# 如果不在同一个路径下 那么需要输入excel文件的绝对路径
# '''
# 绝对路径
# 类似于全球具体坐标,任何人拿到该坐标都可以查找
# 相对路径
# 相对于一个参照物,并不是所有人都可以根据该坐标找到
# '''
df
# 在读取文件的时候还可以自定义列
df1 = pd.read_csv('douban_movie.csv',index_col='产地')
# df1.set_index('类型')
df1
# 都是用来指定读取出来的excel数据的左侧行名称(行名称必须是表格中存在的)
# 将之前设置的行索引取消
df1.reset_index()
基本操作
# 指定看前面多少条
df.head(5)
名字 投票人数 类型 产地 上映时间 时长 年代 评分 首映地点
0 肖申克的救赎 692795.0 剧情/犯罪 美国 1994-09-10 00:00:00 142.0 1994 9.6 多伦多电影节
1 控方证人 42995.0 剧情/悬疑/犯罪 美国 1957-12-17 00:00:00 116.0 1957 9.5 美国
2 美丽人生 327855.0 剧情/喜剧/爱情 意大利 1997-12-20 00:00:00 116.0 1997 9.5 意大利
3 阿甘正传 580897.0 剧情/爱情 美国 1994-06-23 00:00:00 142.0 1994 9.4 洛杉矶首映
4 霸王别姬 478523.0 剧情/爱情/同性 中国大陆 1993-01-01 00:00:00 171.0 1993 9.4 香港
# 查看尾部指定条数的数据
df.tail(5)
# 查看数据条数
len(df)
38735
# 查看数据的行列个数
df.shape
(38735, 9)
# 查看行索引
df.index
RangeIndex(start=0, stop=38735, step=1)
# 查看列字段
df.columns
Index(['名字', '投票人数', '类型', '产地', '上映时间', '时长', '年代', '评分', '首映地点'], dtype='object')
数据导出
# 将DataFrame导出excel文件
df.to_csv('db1.csv') # 默认index=True 自动将DataFrame的行索引也导出
df.to_csv('db2.csv',index=False) # 忽略行索引
索引与切片
DataFrame也是由行索引和列索引,也可以通过标签和位置两种方法进行
方式1
两个中括号,先取列再取行 df['A'][0]
方式2
使用loc/iloc属性:一个中括号逗号隔开,先取行再取列
都是左侧
df.loc[0:5]
名字 投票人数 类型 产地 上映时间 时长 年代 评分 首映地点
0 肖申克的救赎 692795.0 剧情/犯罪 美国 1994-09-10 00:00:00 142.0 1994 9.6 多伦多电影节
1 控方证人 42995.0 剧情/悬疑/犯罪 美国 1957-12-17 00:00:00 116.0 1957 9.5 美国
2 美丽人生 327855.0 剧情/喜剧/爱情 意大利 1997-12-20 00:00:00 116.0 1997 9.5 意大利
3 阿甘正传 580897.0 剧情/爱情 美国 1994-06-23 00:00:00 142.0 1994 9.4 洛杉矶首映
4 霸王别姬 66666666.0 剧情/爱情/同性 中国大陆 1993-01-01 00:00:00 171.0 1993 9.4 香港
5 泰坦尼克号 157074.0 剧情/爱情/灾难 美国 2012-04-10 00:00:00 194.0 2012 9.4 中国大陆
df.iloc[0:5]
名字 投票人数 类型 产地 上映时间 时长 年代 评分 首映地点
0 肖申克的救赎 692795.0 剧情/犯罪 美国 1994-09-10 00:00:00 142.0 1994 9.6 多伦多电影节
1 控方证人 42995.0 剧情/悬疑/犯罪 美国 1957-12-17 00:00:00 116.0 1957 9.5 美国
2 美丽人生 327855.0 剧情/喜剧/爱情 意大利 1997-12-20 00:00:00 116.0 1997 9.5 意大利
3 阿甘正传 580897.0 剧情/爱情 美国 1994-06-23 00:00:00 142.0 1994 9.4 洛杉矶首映
4 霸王别姬 66666666.0 剧情/爱情/同性 中国大陆 1993-01-01 00:00:00 171.0 1993 9.4 香港
数据操作
df['名字'] # 展示形式是Series
df[['名字']] # 用中括号扩一下就会变成表格的形式展示
# 一次性获取多个列
df[['名字','评分','类型']]
# 切片获取数据条数
df[0:10]
# 获取指定数据
df.at[4,'名字'] # at['行索引值','列名称']
# 修改指定数据
df.at[4,'名字'] = '爱情动作科幻大混合'
# 利用关键字指定索引
df.loc[1].at['名字']
# 切片之后获取指定的列数据
df[1:5][['名字','类型','年代']]
# 数据快速筛选
df[(df.评分 > 8.5) & (df.评分 < 9.0)]
数据自定义展示
>>> df = pd.DataFrame({
... 'col1': ['A', 'A', 'B', np.nan, 'D', 'C'],
... 'col2': [2, 1, 9, 8, 7, 4],
... 'col3': [0, 1, 9, 4, 2, 3],
... })
>>> df
col1 col2 col3
0 A 2 0
1 A 1 1
2 B 9 9
3 NaN 8 4
4 D 7 2
5 C 4 3
Sort by col1
>>> df.sort_values(by=['col1'])
col1 col2 col3
0 A 2 0
1 A 1 1
2 B 9 9
5 C 4 3
4 D 7 2
3 NaN 8 4
Sort by multiple columns
>>> df.sort_values(by=['col1', 'col2'])
col1 col2 col3
1 A 1 1
0 A 2 0
2 B 9 9
5 C 4 3
4 D 7 2
3 NaN 8 4
Sort Descending
>>> df.sort_values(by='col1', ascending=False)
col1 col2 col3
4 D 7 2
5 C 4 3
2 B 9 9
0 A 2 0
1 A 1 1
3 NaN 8 4
Putting NAs first
>>> df.sort_values(by='col1', ascending=False, na_position='first')
col1 col2 col3
3 NaN 8 4
4 D 7 2
5 C 4 3
2 B 9 9
0 A 2 0
1 A 1 1
# 后面还可以对排序之后的结果筛选
df.sort_values(['列名1','列名2'],ascending=True)[['目标列1','目标列2']]
操作列
df.rename(column={'旧列名称':'新列名称'},inplace=True)
# 能修改 但是会报个错误 可以添加下列配置
pd.set_option('mode.chained_assignment',None)
# 创建新的列
df['新列名称']=df.列名称/(df.列名称1+df.列名称2)
# 自定义位置
df.insert(3,'新列名称',新数据)
操作行
# 方式1 append
>>> df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
>>> df
A B
0 1 2
1 3 4
>>> df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))
>>> df.append(df2)
A B
0 1 2
1 3 4
0 5 6
1 7 8
With `ignore_index` set to True:
>>> df.append(df2, ignore_index=True)
A B
0 1 2
1 3 4
2 5 6
3 7 8
# 方式2 concat功能更强大 可以拼接Series和DataFrame
pd.concat([res,df])
pd.concat([res,df],ignore_index=True)
'''
本质其实就相当于拼接表格数据
'''
pandas模块篇(之三)的更多相关文章
- pandas模块篇(终章)及初识mataplotlib
今日内容概要 时间序列 针对表格数据的分组与聚合操作 其他函数补充(apply) 练习题(为了加深对DataFrame操作的印象) mataplotlib画图模块 今日内容详细 时间序列处理 时间序列 ...
- pandas模块篇(之二)
今日内容概要 布尔选择器 索引 数据对齐 数据操作(增出改查) 算术方法 DataFrame(Excel表格数据) 布尔选择器 import numpy as np import pandas as ...
- 关于Python pandas模块输出每行中间省略号问题
关于Python数据分析中pandas模块在输出的时候,每行的中间会有省略号出现,和行与行中间的省略号....问题,其他的站点(百度)中的大部分都是瞎写,根本就是复制黏贴以前的版本,你要想知道其他问题 ...
- Pandas模块
前言: 最近公司有数据分析的任务,如果使用Python做数据分析,那么对Pandas模块的学习是必不可少的: 本篇文章基于Pandas 0.20.0版本 话不多说社会你根哥!开干! pip insta ...
- 开发技术--pandas模块
开发|pandas模块 整了一篇关于pandas模块的使用文章,方便检查自己的学习质量.自从使用了pandas之后,真的是被它的功能所震撼~~~ 前言 目前所有的文章思想格式都是:知识+情感. 知识: ...
- [Python]-pandas模块-机器学习Python入门《Python机器学习手册》-02-加载数据:加载文件
<Python机器学习手册--从数据预处理到深度学习> 这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习 ...
- python之pandas模块
一.pandas模块是基于Numpy模块的,pandas的主要数据结构是Series和DadaFrame,下面引入这样的约定: from pandas import Series,DataFrame ...
- Python 数据处理扩展包: numpy 和 pandas 模块介绍
一.numpy模块 NumPy(Numeric Python)模块是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list str ...
- pandas模块实现小爬虫功能-转载
pandas模块实现小爬虫功能 安装 pip3 install pandas 爬虫代码 import pandas as pd df = pd.read_html("http://www.a ...
随机推荐
- expect.sh
#!/usr/bin/expect spawn /usr/bin/ssh root@192.168.43.43 -p 22 expect "password:" send &quo ...
- Visualizing and Understanding Convolutional Networks论文复现笔记
目录 Visualizing and Understanding Convolutional Networks 论文复现笔记 Abstract Introduction Approach Visual ...
- Mac 常用的 20 款效率神器推荐
01.IntelliJ IDEA -- JetBrains 系列产品 02.GoLand -- JetBrains 系列产品 03.Alfred 04.Google Chrome 05.iTerm2 ...
- halcon视觉入门钢珠识别
halcon视觉入门钢珠识别 经过入门篇,我们有了基础的视觉识别知识.现在加以应用. 有如下图片: 我们需要识别图片中比较明亮的中间区域,有黑色的钢珠,我们需要知道他的位置和面积. 分析如何识别 编写 ...
- 解决Vue3使用 Ant Design,出现多个Modal,全是黑屏,导致列表页看不见问题!
尴尬问题 不报错,但是我看着就难受. 求知路上 请教了下强哥,强哥告诉我可能某个样式属性失效引起(无效),建议我F12看下样式. 接着,我F12狂看元素样式,查了一个小时未果,我真抓狂了. 都想明天问 ...
- Vue 面试题
1.Vue父组件向子组件传递数据? 答:props传参 父组件 <child :list="list"></child> //在这里绑定list对象 子组件 ...
- Git refusing to merge unrelated histories (拒绝合并不相关仓库)
感谢原文作者:lindexi_gd 原文链接:https://blog.csdn.net/lindexi_gd/article/details/52554159 本文讲的是把git在最新2.9.2,合 ...
- Swift中数据类型
Swift类型的介绍 Swift中的数据类型也有:整型/浮点型/对象类型/结构体类型等等 先了解整型和浮点型 整型 有符号 Int8 : 有符号8位整型 Int16 : 有符号16位整型 Int32 ...
- 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)
Unicode与UTF-8互转(C语言实现):http://blog.csdn.net/tge7618291/article/details/7599902 汉字 Unicode 编码范围:http: ...
- go基础——数组array
package main import "fmt" /* 数组: array数组属于值类型,存储的是数值本身,数据传递给其他变量时传递的是数据的副本. slice,map等属于引用 ...