学习写代码的第N天(实际上第0天)

正式开启被男朋友魔鬼训练的第一天,看大神们的代码来学习python,欢迎查收20181218的学习心得~

摘要

  1. 类,实例,方法,属性的概念
  2. loc,iloc和ix索引的使用
  3. str的内置方法
  4. concat和merge的使用
  5. 布尔型索引
  6. duplicates()的使用
  7. 方法是否有返回值

一、类,实例,方法,属性的概念
https://blog.csdn.net/weixin_31678985/article/details/79723750
目前是看别人的讲解,后续会出自己的心得版啦~(挖坑中。。。。。。)

二、loc,iloc和ix索引的使用

2.1、使用说明

 loc是索引列标签和行标签(也就是index和columns)iloc是索引列号和行号(行号和列号都是从0开始的序列)ix是既可以索引行标签,也可以索引列标签

2.2、举例说明

import pandas as pd
data = pd.DataFrame(data = {'X': [1, 2, 3, 4, 5, 6, 7, 8], 'Y': [11, 12, 13, 14, 15, 16, 17, 18]},index = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])
print(data)
#四种方式索引第一行数据
print(data.loc['a'])
print(data.iloc[0])
print(data.ix['a'])
print(data.ix[0])#四种方式索引第一列数据
print(data.loc[:, ['X']])
print(data.iloc[:, [0]])
print(data.ix[:, ['X']])
print(data.ix[:, [0]])#四种方式索引多行数据。注意:行号或者列号索引是左闭右开,行标签或者列标签索引是左闭右闭(详见2.3.2)
print(data.loc['a':'b'])
print(data.iloc[0:2])
print(data.ix['a':'b'])
print(data.ix[0:2])   #此时ix是切片索引#四种方式索引多列数据。索引单列时列需要加上中括号,索引多列时列不需要加上中括号
print(data.loc[:, 'X':'Y'])
print(data.iloc[:, 0:2])
print(data.ix[:, 'X':'Y'])
print(data.ix[:, 0:2])   #此时ix是切片索引

2.3、两个小问题

2.3.1、 索引index重复的情况
当DataFrame的index重复的时候用loc和ix同时索引行和列可能会出错(出错原因有待探讨)。建议使用iloc来索引。(注意:DataFrame的index可以重复,但是columns不能重复,如果有重复列名则该列值会被最后一次出现此列的值替代)

import pandas as pd
data = pd.DataFrame(data = {'X': [1, 2, 3, 4, 5, 6, 7, 8],'Y': [11, 12, 13, 14, 15, 16, 17, 18]},index = [0, 1, 0, 1, 0, 1, 1, 0])
print(data)
#同时索引行和列的时候
print(data.loc[0:1, 'X':'Y'])    #出错无法运行
print(data.ix[0:1, 'X':'Y'])     #出错无法运行print(data.iloc[0:2, 0:2])     #索引前2行前2列
import pandas as pd
data = pd.DataFrame(data = {'X': [1, 2, 3, 4, 5, 6, 7, 8],'Y': [11, 12, 13, 14, 15, 16, 17, 18]},index = [0, 1, 1, 1, 1, 1, 1, 1])
print(data)
#同时索引行和列的时候
print(data.loc[0:1, 'X':'Y'])    #可以运行
print(data.ix[0:1, 'X':'Y'])     #可以运行print(data.iloc[0:2, 0:2])     #索引前2行前2列

2.3.2、iloc和loc, ix索引不都是切片索引

import pandas as pd
data = pd.DataFrame(data = {0: [1, 2, 3, 4, 5, 6, 7, 8],1: [11, 12, 13, 14, 15, 16, 17, 18],2: [21, 22, 23, 24, 25, 26, 27, 28]},index = [0, 1, 2, 3, 4, 5, 6, 7])
print(data)print(data.iloc[0:2, 0:2])    #索引前2行前2列
print(data.loc[0:2, 0:2])     #索引前3行前3列
print(data.ix[0:2, 0:2])      #索引前3行前3列

通过上述例子可以发现iloc索引是切片索引,即左闭右开,loc索引是左闭右闭,但是ix有时候是左闭右开,有时候是左闭右闭,可能这就是现在都不推荐使用ix的原因吧~

三、str的内置方法

https://www.jianshu.com/p/e2d48c64b404
这个博客写出了Python中str的所有内置方法,有需求可以去上面查看~

四、concat和merge的使用

4.1、concat常用参数说明

参数 说明
objs 参与连接的列表或字典,且列表或字典里的对象是pandas数据类型,唯一必须给定的参数
axis 默认是0,0代表index,1代表columns
join 默认是outer(并集),inner是交集
ignore_index 忽略连接轴上的索引,产生一组新索引range(length)

4.2、merge常用参数说明

参数 说明
right 参与连接的DataFarme
how 默认inner,可选:{‘left’, ‘right’, ‘outer’},
on 用于连接的列名,必须同时存在于两个DataFrame中,如果未指定,则以left和right列名的交集作为连接键
left_on 左侧DataFarme中用作连接键的列
right_on 右侧DataFarme中用作连接键的列
left_index 将左侧DataFarme的行索引用作其连接键
right_index 将右侧DataFarme的行索引用作其连接键

4.3、举例说明

import pandas as pd
data_1 = pd.DataFrame(data = {'X': [1, 2, 3],'Y': [11, 12, 13]})
data_2 = pd.DataFrame(data = {'Z': [ 4, 5, 6],'Y': [11, 12, 19]})
print(data_1)
print(data_2)
print(data_1.merge(data_2, on='Y', how='inner'))   #内连接,取交集
print(data_1.merge(data_2, on='Y', how='outer'))   #外连接,取并集,没有值部分补充NaN
print(data_1.merge(data_2, on='Y', how='left'))    #左连接,以左边作为连接基础,右边可丢弃或补充NaN
print(data_1.merge(data_2, on='Y', how='right'))   #右连接,以右边作为连接基础,左边可丢弃或补充NaN

结果如下:

import pandas as pd
s1 = pd.Series([0, 1, 2], index = ['a', 'b', 'c'])
s2 = pd.Series([2, 3, 4], index = ['c', 'f', 'e'])
s3 = pd.Series([4, 5, 6], index = ['c', 'f', 'g'])
print(pd.concat([s1, s2, s3]))  #直接连接所有表
print(pd.concat([s1,s2,s3],ignore_index = True))  #生成新的索引

结果如下:

五、布尔型索引
布尔型索引可以索引Series,list或者数组,不能索引DataFrame。布尔型索引结果是一个布尔型数组。

六、drop_duplicates()的使用

import pandas as pd
data = pd.DataFrame({'A':[1, 1, 2, 2], 'B':['a', 'a', 'b', 'b']})
print(data)
data.drop_duplicates(inplace = True)
print(data)

结果如下:

七、方法是否有返回值

#无返回值的方法
data = [1, 2, 5, 7, 3, 4]
a = data.sort()
print('data的结果是:',data)
print('a的结果是:',a)#有返回值的方法
Str = 'ABCdefgh'
a = Str.replace('ABC', 'abc')
print('Str的结果是:',Str)
print('a的结果是:',a)

结果如下:

正式学习python的第0天相关推荐

  1. 从零开始学习python编程-从0开始的Python学习014面向对象编程(推荐)

    简介 到目前为止,我们的编程都是根据数据的函数和语句块来设计的,面向过程的编程.还有一种我们将数据和功能结合起来使用对象的形式,使用它里面的数据和方法这种方法叫做面向对象的编程. 类和对象是面向对象编 ...

  2. 【Python学习教程】P1-安装python 3.10.0

    目录 一.什么是Python 二.安装python 3.10.0 1.进入python官网 2.打开下载完成的安装包 3.测试安装完成的python 一.什么是Python Python由荷兰数学和计 ...

  3. 从零开始学习Python在e站上下载蕾姆的本子

    从零开始学习Python在e站上下载蕾姆的本子 郑重说明: 1. 本文仅仅只是Python技术应用的实践和探讨,本人绝不提供和传递任何违背国家相关法律的视频.音频及图像资料. 2. 本人也是刚刚开始接 ...

  4. 零基础转行学习python是否还在纠结?这里告诉你答案!

    Python编程语言由于自身具有的"清晰"."简略"等特点而受到众多使用Python编程语言的IT从业者喜爱.而且,对于初学者来说,比起其他编程语言,Pytho ...

  5. 零基础、转行学习Python是否还在纠结?这里告诉你答案!

    Python编程语言由于自身具有的"清晰"."简略"等特点而受到众多使用Python编程语言的IT从业者喜爱.而且,对于初学者来说,比起其他编程语言,Pytho ...

  6. 今天开始正式认认真真学习Python,以上!

    今天开始正式认认真真学习Python,以上! 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, 可以仔细阅 ...

  7. 0基础学习Python基础语法(0)-print()与变量

    文章目录 Python[人工智能]时代的立身武器 print 无引号 单引号的用法 双引号的用法 三引号的用法 转义字符 变量和赋值 变量的命名规范 下关预告 Demo 例子:打印 例子:转义字符 要 ...

  8. 0基础学怎么学习python

    ​ Python相对于其他编程语言来说是比较简单的,非常适合零基础的小白学习,想要进入到互联网行业,可以优先选择学习Python,那么下面小编就来为大家详细的介绍一下0基础学怎么学习python? ​ ...

  9. python自学步骤-学习Python最正确的步骤(0基础必备)

    首先,学习Python编程技术,自学或者参加培训学习都适用,每个人都有自己的学习方式和方法. 一:明确自己的学习目标. 不管我们学习什么样的知识,都要对自己的学习目标有一个明确的认识.只有这样才能朝着 ...

最新文章

  1. 1097 Deduplication on a Linked List
  2. 好像最近买了很多东西
  3. linux笔记 第3天
  4. vue开发入门篇(二)-axios POST提交数据的三种请求方式写法
  5. es6变量的解构赋值
  6. 第八章 Health Check
  7. ElasticSearch 2.0以后的改动导致旧的资料和书籍需要订正的部分
  8. Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31
  9. 什么是“小小输入法”软件? 用其进行郑码输入练习
  10. Visual C++——《可视化编程技术》实验报告——绘图与文本操作
  11. Bootstrap全局css样式_代码
  12. rip协议的V1和V2的更新机制
  13. windows 2008 server NTP Server
  14. Spring : BeanDefinition
  15. 2680 Problem F: Coin Game
  16. 软件对于英特尔意味着什么?
  17. live2dmesh渲染优先级_如何渲染Live2D模型
  18. 带分页存储管理系统中计算机应用自考,自考计算机应用基础试题及答案
  19. R语言快捷键大全中文版
  20. 14-父子组件通讯,父传子(props)

热门文章

  1. 组件中使用_尚德高效组件全线投入壳牌首个光伏项目中使用
  2. 分布式任务队列:Celery使用记录
  3. python---单元测试
  4. ios上传图片 java_iOS ASIFormDataRequest上传图片 前后台代码
  5. matlab虚拟现实之V-Realm Builder2复制技巧(修改)
  6. Inception-v4论文总结
  7. 【java】创建一个Frame,字体的颜色可以用按钮改变
  8. Java实现一个会员制度的CD出租销售店,基本的功能有:一是对会员的管理,包括增加会员、删除会员;二是对货品的管理,包括出租、销售CD、进货、统计账目等。
  9. Java中大数据数组,Java基础学习笔记之数组详解
  10. 基于块分割及CNN的文档矫正与光照消除方法 (有源码和数据)