文章目录

  • 要求
  • 1.掌握常见文件格式的读写操作
  • 2.理解并熟悉 Series 和 DataFrame 的重要属性和重要方法
  • 3.掌握各类排序(索引排序和值排序、单级排序和多级排序)
  • 1.查看Pandas版本
    • 一、文件读取与写入
      • 1. 读取
        • (a)csv格式
        • (b)txt格式
        • (c)xls或xlsx格式
      • 2. 写入
        • (a)csv格式
        • (b)xls或xlsx格式
    • 二、基本数据结构
      • 1. Series
        • (a)创建一个Series
        • (b)访问Series属性
        • (c)取出某一个元素
        • (d)调用方法
      • 2. DataFrame
        • (a)创建一个DataFrame
        • (b)从DataFrame取出一列为Series
        • (c)修改行或列名
        • (d)调用属性和方法
        • (e)索引对齐特性
        • (f)列的删除与添加
        • (g)根据类型选择列
        • (h)将Series转换为DataFrame
    • 三、常用基本函数
      • 1. head和tail
      • 2. unique和nunique
      • 3. count和value_counts
      • 4. describe和info
      • 5. idxmax和nlargest
      • 6. clip和replace
      • 7. apply函数
    • 四、排序
      • 1. 索引排序
      • 2. 值排序

要求

1.掌握常见文件格式的读写操作

2.理解并熟悉 Series 和 DataFrame 的重要属性和重要方法

3.掌握各类排序(索引排序和值排序、单级排序和多级排序)

import pandas as pd
import numpy as np

1.查看Pandas版本

pd.__version__

一、文件读取与写入

1. 读取

(a)csv格式

df = pd.read_csv('data/table.csv')
df.head()

(b)txt格式

df_txt = pd.read_table('data/table.txt')   #可设置sep分隔符参数
df_txt.head()

(c)xls或xlsx格式

#需要安装xlrd包
df_excel = pd.read_excel('data/table.xlsx')
df_excel.head()

2. 写入

(a)csv格式

df.to_csv('data/new_table.csv')
#df.to_csv('data/new_table.csv', index=False) #保存时除去行索引

(b)xls或xlsx格式

#需要安装openpyxl
df.to_excel('data/new_table2.xlsx', sheet_name='Sheet1')

二、基本数据结构

1. Series

(a)创建一个Series

对于一个Series,其中最常用的属性为值(values),索引(index),名字(name),类型(dtype)

s = pd.Series(np.random.randn(5),index=['a','b','c','d','e'],name = '这是一个Series',dtype='float64')
s

(b)访问Series属性

s.values

s.name

s.index

(c)取出某一个元素

将在第2章详细讨论索引的应用,这里先大致了解

s['a']

(d)调用方法

s.mean()


Series有相当多的方法可以调用:

print([attr for attr in dir(s) if not attr.startswith('-')])

2. DataFrame

(a)创建一个DataFrame

df = pd.DataFrame({'col1':list('abcde'),'col2':range(5,10),'col3':[1.3,2.5,3.6,4.6,5.8]},index = list('一二三四五'))
df

(b)从DataFrame取出一列为Series

df['col1']

type(df)

type(df['col3'])

(c)修改行或列名

df.rename(index={'一':'one'},columns={'col1':'new_col1'})

(d)调用属性和方法

df.index

df.columns

df.values

df.shape

df.mean()

(e)索引对齐特性

这是Pandas中非常强大的特性,不理解这一特性有时就会造成一些麻烦

df1 = pd.DataFrame({'A':[1,2,3]},index=[1,2,3])
df2 = pd.DataFrame({'A':[1,2,3]},index=[3,1,2])
df1 - df2

(f)列的删除与添加

对于删除而言,可以使用drop函数或del或pop

df.drop(index='五',columns='col1')#设置inplace=True后会直接在原DataFrame中改动

df['col1']=[1,2,3,4,5]
del df['col1']
df


pop方法直接在原来的DataFrame上操作,且返回被删除的列,与python中的pop函数类似

df['col1']=[1,2,3,4,5]
df.pop('col1')

df

可以直接增加新的列,也可以使用assign方法

df1['B']=list('abc')
df1.assign(C=pd.Series(list('def')))


但assign方法不会对原DataFrame做修改

df1

(g)根据类型选择列

df.select_dtypes(include=['number']).head()

df.select_dtypes(include=['float']).head()

(h)将Series转换为DataFrame

s = df.mean()
s.name='to_DataFrame'
s

s.to_frame()


使用T符号可以转置

s.to_frame().T

三、常用基本函数

从下面开始,包括后面所有章节,我们都会用到这份虚拟的数据集

df = pd.read_csv('data/table.csv')

1. head和tail

df.head()

df.tail()


可以指定n参数显示多少行

df.head(3)

2. unique和nunique

df['Physics'].nunique()


unique显示所有的唯一值

df['Physics'].unique()

3. count和value_counts

count返回非缺失值元素个数

df['Physics'].count()


value_counts返回每个元素有多少个

df['Physics'].value_counts()

4. describe和info

info函数返回有哪些列、有多少非缺失值、每列的类型

df.info()

describe默认统计数值型数据的各个统计量

df.describe()


可以自行选择分位数

df.describe(percentiles=[.05, .25, .75, .95])

对于非数值型也可以用describe函数

df['Physics'].describe()

5. idxmax和nlargest

idxmax函数返回最大值,在某些情况下特别适用,idxmin功能类似

df['Math'].idxmax()


nlargest函数返回前几个大的元素值,nsmallest功能类似

df['Math'].nlargest(3)

6. clip和replace

clip和replace是两类替换函数
clip是对超过或者低于某些值的数进行截断

df['Math'].head()

df['Math'].clip(33,80).head()

df['Math'].mad()


replace是对某些值进行替换

df['Address'].head()

df['Address'].replace(['street_1','street_2'],['one','two']).head()


通过字典,可以直接在表中修改

df.replace({'Address':{'street_1':'one','street_2':'two'}}).head()

7. apply函数

apply是一个自由度很高的函数,在第3章我们还要提到
对于Series,它可以迭代每一列的值操作:

df['Math'].apply(lambda x:str(x)+'!').head() #可以使用lambda表达式,也可以使用函数

对于DataFrame,它可以迭代每一个列操作:

df.apply(lambda x:x.apply(lambda x:str(x)+'!')).head() #这是一个稍显复杂的例子,有利于理解apply的功能

四、排序

1. 索引排序

df.set_index('Math').head() #set_index函数可以设置索引,将在下一章详细介绍

df.set_index('Math').sort_index().head() #可以设置ascending参数,默认为升序,True

2. 值排序

df.sort_values(by='Class').head()

多个值排序,即先对第一层排,在第一层相同的情况下对第二层排序

df.sort_values(by=['Address','Height']).head()

代码和数据地址:https://github.com/XiangLinPro/pandas

所有巧合的是要么是上天注定要么是一个人偷偷的在努力。

公众号,关注回复【电子书】有惊喜,资源多多。

个人微信公众号,专注于学习资源、笔记分享,欢迎关注。我们一起成长,一起学习。一直纯真着,善良着,温情地热爱生活,,如果觉得有点用的话,请不要吝啬你手中点赞的权力,谢谢我亲爱的读者朋友

-Fear not that the life shall come to an end, but rather fear that it shall never have a beginning.——J.H. Newman
「不要害怕你的生活将要结束,应该担心你的生活永远不会真正开始。——纽曼」

给大家推荐一个Github,上面非常非常多的干货,保证让你满意:https://github.com/XiangLinPro/IT_book

关于Datawhale

Datawhale是一个专注于数据科学与AI领域的开源组织,汇集了众多领域院校和知名企业的优秀学习者,聚合了一群有开源精神和探索精神的团队成员。Datawhale以“for the learner,和学习者一起成长”为愿景,鼓励真实地展现自我、开放包容、互信互助、敢于试错和勇于担当。同时Datawhale 用开源的理念去探索开源内容、开源学习和开源方案,赋能人才培养,助力人才成长,建立起人与人,人与知识,人与企业和人与未来的联结。

2020年4月21日于重庆城口
好好学习,天天向上,终有所获

第1章 Pandas基础操作(使用pandas进行数据分析,从小白逆袭大神,你会了吗?)相关推荐

  1. 数据分析:numpy和pandas基础操作详解

    数据处理基础 numpy基础 1.numpy创建数组及基础属性 2.数组的特点 3.创建常见数组 4.数组数据类型 5.生成随机数 6.一维数组索引 7.布尔索引 8. 多维数组的索引 9.实际问题 ...

  2. pandas 基础操作

    原文链接: pandas 基础操作 上一篇: numpy 基础 下一篇: Python2 爬虫 登录 12306 import numpy as np import pandas as pds = p ...

  3. pandas基础操作大全之数据合并

    在pandas 基础操作大全之数据读取&清洗&分析中介绍了pandas常见的数据处理操作,现在继续对pandas常用的数据合并操作做下介绍,便于大家快速了解,也方便后续需要时快速查询. ...

  4. 第一章 JDBC基础操作 ② 代码

    第一章 JDBC基础操作 ② 代码 1.jar包的安装与异常处理 1.1安装jar包 1.2 异常报错 3.异常处理 2.连接数据库 3.调用数据库 3.1 异常处理 4.数据库操作:增删改查 5.定 ...

  5. pandas基础操作

    3.1panda基础操作 头文件: import numpy as np import pandas as pd 创建pandas序列 pandas会默认添加序号 s = pd.Series([1,3 ...

  6. Pandas基础操作(上)

    文章目录 一.Pandas文件读取 1.pandas数据读取 1.读取纯文本文件 1.1 读取csv,使用默认的标题行.逗号分隔符 1.2 读取txt文件,自己指定分隔符.列名 2.读取excel文件 ...

  7. 小白快速变大神,零基础菜鸟应该怎么学编程

    最近,在交流群里经常有苦逼小白问怎样学编程,对编程有兴趣但无从下手,这是个庞大到让大神们"无言以对"的命题.在知乎.CSDN等论坛上,许多同行也对此类问题进行了探讨,小编就其中认可 ...

  8. 第03章 Tableau基础操作

    序言 1.内容介绍 ​ 本章介绍了Tableau的工作区及其操作.维度和度量及相关操作.连续和离散.数据和视图的导出操作等. 2.理论目标 了解Tableau工作区的典型操作 掌握维度和度量的区别 掌 ...

  9. 第一章Mybatis基础操作学习

    文章目录 MyBatis简介 MyBatis历史 MyBatis特性 和其它持久化层技术对比 搭建MyBatis 开发环境 创建maven工程 创建MyBatis的核心配置文件 创建mapper接口 ...

  10. Python炫技操作,小白秒变大神

    01   直接 import 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. ...

最新文章

  1. mysql 1146错误
  2. python语言表白源码-python七夕浪漫表白源码
  3. 手把手教你使用ECharts绘制可视化图表
  4. Almost All Divisors
  5. BigDecimal类基础
  6. 《Python Cookbook 3rd》笔记(2.7):最短匹配模式
  7. When allowCredentials is true, allowedOrigins cannot contain the special value “*“ that cannot be
  8. vb 导出整数 科学计数法_可整数组的计数
  9. Composer - PHP 世界里用于管理项目依赖的工具
  10. 消息称苹果正探索更大尺寸iPad 屏幕分别为14英寸、16英寸
  11. jquery 手型 鼠标穿过时_三模无线搭配对称手型设计,游戏致胜利器,ROG烈刃2无线鼠标...
  12. 【转载】漏洞 CNVD-2017-36682 相关公告以及 JavaScript / 安卓开发者须知
  13. R语言从初级到精通-张长志-专题视频课程
  14. ​越狱iOS必备神器Flex使用指南-屏蔽越狱检测的破解利器
  15. 基于AT89C51单片机的超声波传感器测距【程序详细代码及注释】
  16. [视频教程]MAME画质优化hq3x
  17. 愤怒的小鸟 高清完整版下载
  18. 颜色空间:RGB,CMY,HSV,HSL,Lab详解(转载)
  19. 网游活动策划经验指南
  20. 《管理评论》投稿经验分享21年

热门文章

  1. Drill模块——孔加工与螺纹铣削
  2. 风云武魂传说防御(四职业)
  3. DOS命令教程 第二章——ping命令
  4. win7驱动程序未经签名可以使用吗_win7系统驱动强制数字签名的问题
  5. php 显示探针_UPUPW PHP探针安全版19.08.06
  6. Ubuntu 下安装 QQ
  7. 学霸辞掉百万年薪只为专心“玩”纸,却推动了航天、医学等领域进步
  8. 字符编码:GBK、GB2312、UTF-8
  9. MKV(Matroska)常见问题浅析
  10. 解决永中集成office和opera的中文输入问题