Python数据分析-基础知识整理

数据分析需掌握的基础知识

  • 1、Python 常用数据类型
  • 2、字符串常用模块、函数和操作
  • 3、日期
  • 4、Python基本数据结构
  • 5、控制流
  • 6、自定义函数

1、Python 常用数据类型

四种基本数据类型

数据类型 英文 举例
整数 Integer i=1
浮点数 Floats n=1.23
字符串 String str='你好'
布尔类型 Booleans b=True

type()函数

type函数可以查看变量的数据类型,示例如下:

i=1
n=1.23
str='你好'
b=True
print(type(i))
print(type(n))
print(type(str))
print(type(True))

输出结果为:


image.png

2、字符串常用模块、函数和操作

使用引号包含字符串

使用符号 输出效果
单个引号('') 输出引号内的字符
3个引号(''') 允许字符串跨多行,所见即所得格式

示例如下:

var1 = 'Hello World!'
var2='''hello 
world!
'''
print(var1)
print('----------')
print(var2)

输出结果为:


image.png

字符串转义字符反斜杠(\)

在字符串中使用特殊字符,用反斜杠转义

常用转义字符 描述
(在行末尾) 续行符
\ 反斜杠符号
' 单引号
" 双引号
\n 换行
\r 回车

字符串运算

a='Hello',b='World'

操作符 描述 示例
+ 字符串连接 a+b 输出 HelloWorld
* 重复输出字符串 a*2 输出 HelloHello
[] 通过索引获取字符串中的字符 a[1] 输出e
[:] 截取字符串的一部分,左闭右开 ,从0开始 a[1:4]输出 ell

示例如下:

a='Hello'
b='World'
print("a + b 输出结果:", a + b)
print("a * 2 输出结果:", a * 2)
print("a[1] 输出结果:", a[1])
print("a[1:4] 输出结果:", a[1:4])

输出结果为:


image.png

字符串处理标准库String常用函数

函数 描述 方法
split 将一个字符串拆分成一个子字符串列表 split('str',num),使用str字符进行拆分,,截取num+1个子字符串
join 将序列中的元素以指定的字符连接生成新的字符串 str.join(seq),seq为要连接的元素序列,以指定字符串str作为分隔符,将seq中所有的元素合并为一个新的字符串
strip 截取字符串的空格或指定字符 lstrip()截取左侧字符,rstrip()截取右侧字符,strip()截取两侧字符。str.lstrip([chars])
replace 将字符串中的一个或一组字符替换为另一个或一组字符 str.replace(old,new,max),max替换不超过max次
lower 将字符串中的所有大写字符转换为小写字符 str.lower()
upper 将字符串中的所有小写字符转换为大写字符 str.upper()
capitalize 将字符串中的第一个字母变成大写 str.capitalize()
len 返回对象(字符、列表、元祖)等的长度或项目个数 len(s),s为对象

示例如下:

print('--------split示例---------')
a='My name is lily'
a1=a.split(' ',2)
print(a1)
print('\n')

print('--------join示例----------')
str = "-"
seq = ("a", "b", "c")
print (str.join( seq ))
print('\n')

print('--------strip示例----------')
str = "     Hello World!!!     "
print( str.lstrip() )
print( str.rstrip() )
print( str.strip() )
str = "88888888Hello World!!!8888888"
print( str.lstrip('8') )
print( str.rstrip('8') )
print( str.strip('8') )
print('\n')

print('--------replace示例----------')
str = "this is string example....wow!!!this is string example....wow!!!"
print (str.replace("is", "was",3))
print('\n')

print('--------lower,upper,capitalize,len示例----------')
str='hello World'
print('lower:'+str.lower())
print('upper:'+str.upper())
print('capitalize:'+str.capitalize())
print(len(str))

输出结果为:


image.png

3、日期

Python中包含了datetime模块,提供了非常强大的功能来处理日期和时间
常用对象:

对象 描述
date 包含年月日
datetime 包含年月日、时分秒

示例如下:

from datetime import date, time, datetime, timedelta
today = date.today()
print(today)

current_datetime = datetime.today()
print(current_datetime)

输出结果为:


image.png

获取年月日

函数 说明 示例
year 获取年份 [图片上传失败...(image-58fffb-1588731044908)]
month 获取月份 [图片上传失败...(image-ddf025-1588731044908)]
day 获取日期 [图片上传失败...(image-412ddf-1588731044908)]

timedelta函数

timedelta 本身代表一个时间差,可以在 date 或 datetime 类型间做时间差运算。
timedelta只存储days,seconds,microseconds三个值,其他类型会自动换算
示例如下:

a = datetime.now()
b = datetime.utcnow()
a - b

输出结果为:


image.png

对datetime对象进行时间加减操作:

now = datetime.now()
aDay = timedelta(days=1)
aWeek = timedelta(weeks=1)
aHour = timedelta(hours=1)
print(aDay)
print(aWeek)
print(aHour)
now_day = now + aDay
now_week= now + aWeek
now_hour= now + aHour
print(now_day )
print(now_week )
print(now_hour )

输入结果为:


image.png

strftime函数

用来格式化datetime对象:datetime.strftime('%')

常用格式符 说明
%Y 四个数字的年份 2020
%y 二个数字的年份 20
%m 返回月份,范围[0,12]
%d 当前时间是当前月的第几天
%a 星期的英文缩写,Mon
%A 星期的英文全拼,Monday
%b 月份的英文缩写,Jan
%B 月份的英文全拼,January
%H 以24小时制表示当前小时
%h 以12小时制表示当前小时
%M 返回分钟数 范围 [0,59]
%S 返回秒数 范围 [0,61]
%P 返回是上午还是下午 AM or PM
%c 返回datetime的字符串表示,如03/08/15 23:01:26
%x 日期的字符串表示 :03/08/15
%X 时间的字符串表示 :23:22:00

示例如下:

from datetime import datetime
dt = datetime.now()  
print ('时间:(%Y-%m-%d %H:%M:%S %f): ' , dt.strftime( '%Y-%m-%d %H:%M:%S' ))

运行结果为:


image.png

4、Python基本数据结构

常见的四种数据结构对比表格:

操作 列表List 元组Tuple 字典Dictionary 集合set
简介 最常用的数据类型[x,y,z] 类似于列表但固定长度,不可变(x,y,z) 一种可变容器模型{key1:value1,key2:value2} 无序且元素唯一的容器{x,y,z}
用处 简单有序的,经常被修改的数据集合,具体元素值不经常被查询 一个不变的数据集合 经常被修改、被查询的键&值对 展现一个数据集合中出现的独特元素的集合
创建 new_list=[1,1,'string'] new_tup=(1,1,'string') new_dic={'key_a':1,'key_b':1,'key_c':'string'} new_set={1,1,'string'} print(new_set)-->{1,'string'}
重复元素 可重复 可重复 键不可以重复,值可以重复 不可重复
是否有序
值是否可变可变 不可变 可变 可变
取单个子集(数字索引从0开始) new_list[0] new_tup[0] new_dic{'key_a'} 不能被取子集
切片取子集 new_list[x:y] (从第x开始,取到第y个(不包含y)) 同list 不能被取切片子集 不能被取切片子集
修改元素 new_list[0]=0 不可修改 New_dic['key_c']=2 间接通过增加/删除元素完成
增加元素 append方法加到尾部:new_list.append('extra') ;insert方法插入到指定位置:new_list.insert(1,'extra') 不可变 new_dict['key_new']='extra'; update方法增加多个值:new_dict.update(key_d=3,key_e=4) add方法增加一个值:new_set.add(3) update方法增加多个值:new_set.update([3,4,5])
删除元素 pop方法删除特定位置的元素:new_list.pop(1); remove方法删除特定值:new_list.remove(1) 不可变 del函数按键名删除:del(new_dict('key_a')) remove方法删除一个值:new_set.remove('string')
创建空×× empty_list=[] empty_tup=() empty_dic={} empty_set=set()

5、控制流

条件语句

当“判断条件”成立时,则执行后面的语句,执行内容可以多行,以缩进来区分表示同一范围,else为可选语句,当需要在条件不成立时执行内容。

if语句执行过程:

image.png

通常情况下,判断条件为多个时,可使用如下形式:

 if 判断条件1:
        执行语句1......
 elif 判断条件2:
        执行语句2......
 elif 判断条件3:
        执行语句3......
 else:
        执行语句4......

示例如下:

num = 5     
if num == 3:            # 判断num的值
    print('boss')       
elif num == 2:
    print('user')
elif num == 1:
    print('worker')
elif num < 0:           # 值小于零时输出
    print ('error')
else:
    print ('roadman')    # 条件均不成立时输出

输出结果:


image.png

循环语句

程序一般情况下是按顺序执行的。循环语句允许我们执行一个语句或与剧组多次。执行过程如下:

image.png
循环类型 描述
while循环 在给定的判断条件为True时执行循环,否则退出循环体
for循环 重复执行语句
嵌套循环 while循环体和for循环体可以相互嵌入

while循环

语法如下:

while 判断条件:
    执行语句......

流程图:

image.png

示例如下:

count = 0
while (count < 5):
   print ('The count is:', count)
   count = count + 1

else:
    print ("Good bye!")

输出结果为:


image.png

for循环

可以遍历任何序列的项目,如一个列表或者一个字符串。

语法如下:

for 元素 in 序列:
   代码块

流程图:

image.png

示例如下:

for letter in 'Python':     # 第一个实例
   print( '当前字母 :', letter)

fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # 第二个实例
   print ('当前水果 :', fruit)

print ('Good bye!')

运行结果为:


image.png

循环嵌套

示例如下:

i = 2
while(i < 10):
   j = 2
   while(j <= (i/j)):
      if not(i%j): break
      j = j + 1
   if (j > i/j) : print (i, " 是素数")
   i = i + 1

print ("Good bye!")

运行结果为:

image.png

循环控制语句

控制语句 描述
break语句 在语句块执行过程中终止循环,并且跳出整个循环
continue语句 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环
pass语句 空语句,为了保持程序结构的完整性

6、自定义函数

def自定义函数

语法如下:

def 自定义函数名称(x,y):
    代码块
    return

示例如下:

def cal(x,y=1):#y设置1为默认值
    result=x*x+y
    return result
print(cal(2))
print(cal(2,3))

输出结果为:


image.png

lambda匿名函数

通过单个语句生成函数的方式

示例如下:

cal=lambda x,y=1: x*x+y
print(cal(2))
print(cal(2,3))

输入结果为:


image.png

其中:lambda为关键词,x,y为函数自变量,x*x+y为函数返回值的代码表达式。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343