python数据分析系列一

jupyter notebook快捷键

  1. shift+enter:运行本单元,选中下一单元
  2. ctrl+enter:运行本单元
  3. Y:单元转入代码状态
  4. M:单元转入markdown状态,按1234成为几级标题
  5. A:在上方插入单元
  6. B:在下方插入单元
  7. X:剪切选中的单元
  8. C:复制选中的单元
  9. V:粘贴选中的单元
  10. D+D:连续按两次,删除选中的单元
  11. Tab:代码补全或缩进
  12. ctrl+/:注释整行或者撤销注释

基础的python操作

数据类型

type:查询数据类型。
%取余,//整除,str字符串,+字符串相加,字符串内容不可以更改,inf无穷大,nan非数值

数据结构

1、列表list:[]左闭右开,append/extend添加,pop/del删除,count计数,index返回索引,insert在索引位置插入,remove移除第一次出现的值,reverse反向读数,sort按照大小排序,从小到大,+列表横向拼接,使用list实现字符串转列表,每个字母都会转,*列表复制

#添加
a = [1,2,3,4]
a.append([5,6])
a.extend([5,6])
#输出[1, 2, 3, 4, [5, 6], 5, 6]
#删除,可指定索引,不指定的话删除最后一项,
a.pop()
del a[1]
#输出[1, 3, 4, [5, 6]]
#count计数,计算1出现的次数
a.count(1)
#index返回索引号,返回1的索引
a.index(1)
#insert"a"两次
a.insert(0,'a')
a.insert(0,'a')
a.remove('a')
#输出['a', 1, 3, 4, [5, 6]]

2、元组tuple:()括号表示,不可修改,del删除整个元组,+、*、索引用法同list,元组可实现依次赋值

c = (1, 2, 3, 4, 5, 6)
a1,a2,a3,a4,a5,a6 = c

3、集合set: {}表示,内容不可重复,无序性,add增加,remove删除,<查询a是否是b的子集a.issubset(b),-求差a.difference(b),|求并集a.union(b),&交集 a.intersection(b),~求a和b中未同时出现的元素a.symmetric_difference(b)。

4、字典dict:{}表示,其中数值可以不用打‘’,字符串则需要,del/pop删除,in查询键是否在字典中,存在返回true,get返回值,keys返回所有键,values返回所有值,items返回所有键和值

dict_a = {'name':'ming', 'age': 35, 'id': '1001'}
len(dict_a) 
dict_a['city'] = 'chengdu'
del dict_a['city']
#或者用pop删除
dict_a.pop('city')
name in dict_a
#get 存在返回值,不存在返回1
dict_a.get('name',1)

控制语句

条件语句

if-else、if-elif-else:

x = 1
print('x小于0') if x < 0 else print('x不是负数')
#使用input获取数值时,需要加上int等,否则为字符串
score = int(input('请输入你的分数:'))

循环语句

for和while

for i in range(1,10,2):
	print(i)
a = [x**2 for x in range(10)]
x = 1
total = 0
while(x<=100):
	total += x
	x += 1
else:
	print(total)

其他语句

break;continue;pass

break:终止整个循环语句
continue:跳出当前循环,执行下一次循环
pass:占位符,不做任何操作
列表推导式:

vec = [1,2,3,-4,5,-6]
[x**2 for x in vec if x > 0]
a = [1,2,3,4,5,'boy']
total = 0
for i in a:
	try:
		total = total + i
	except:
		pass

函数

简单函数

enumerate:返回数据和数据索引,一般用在for循环中
zip:将对象中对应位置的元素组成元组,如需查看需要加list
math.floor:向下取整
math.ceil:向上取整
np.argmin:最小值对应的索引

a = [1,2,3,4]
b = [5,6,7,8]
zipped = zip(a,b)
list(zipped)
#输出[(1, 5), (2, 6), (3, 7), (4, 8)]

高阶函数

1、def
2、lambda :适合简单的定义函数,会自动输出,不需要print,lambda+变量+‘:’

g = lambda x: x**2
g(2)
f1 = lambda x: 'a' if x == 1 else 'b'

3、map:将一个函数映射到序列的每一个元素上,生成新序列,list可显示所有值
map(function,input)

list1=[1,2,3,4,5]
def f1(x):
    y = x**2
    return y
list(map(f1,list1))
list(map(lambda x: x**2,list1))

4、 reduce:将一个序列重复同样的映射,先前两个映射,其结果在同第三个值映射,以此类推

from functools import reduce
items = ['a', 'b', 'c', 'd']
reduce(lambda x,y: x+y, items) 

5、filter:过滤掉不符合的函数,true保留,false过滤,结果用list转换

list(filter(lambda x: x%2 == 0, range(21)))
#isinstance(x,int)查询x是否为整数,可换成str,list
items = [1,2,3,4,'a','b','c',5,7]
list(filter(lambda x: 1 if isinstance(x,int) else 0, items))

json文件

定义:是JavaScript对象表示法,json格式是一种轻量级的文本数据交换格式,拥有存储空间小,处理速度快等优势。
数据结构:本质上是一种嵌套字典格式,但键对应的值,不仅可以是数字,还可以是字符串,数组和列表等等。

#读数据r,with自带打开关闭文件
with open('文件路径.json',encoding = 'utf-8', mode = 'r') as f:
	f_read = f.read()
	#将文件读成字符串格式
	data = json.loads(f_read)

#写数据w,indent表示缩进,0即没有空格
with open('存放路径.json', 'w') as f:
	json.dump(data,f,indent = 0)

字符串

\n:换行符
\t:空格
r:防止转义 r‘路径’
%:占位符,输出变量的值,s表示字符串,d表示整数,%.2f小数点后两位,%.4e科学计数法,保留4位,%%百分号
format:

print('我今年%d岁' % 18)
print('我今年{}岁'.format(18))
print('我今年{:.2f}岁'.format(18.12))
print('我今年{}岁'.format('18'))

data.index:返回字符串的索引,如若找不到则报错
data.find:如若找不到则返回-1
upper:大写
lower:小写
capitalize:首字母大写
“”.join(list):将列表中的元素无空格的拼接
replace(’\n’,’’):替换中间的字符串\n
strip:去掉首位的空格,rstrip去掉右边的空格,lstrip去掉左边的空格
isdigit:查询是否全部为数字
isalnum:查询是否由数字或者字母构成
startswith():查询是否为指定开头
endswith():查询是否为指定结尾

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值