Python为我们提供了非常完善的基础代码库,和数据处理库集,所以非常适合做数据分析。
1. Python基础
Python环境安装
下载地址:https://www.python.org/downloads/windows/
下载64位的安装程序,下载后运行exe安装,记得勾选Add Python 3.7 to PATH
完成后可在命令提示符窗口中输入python,即可看到版本信息,并且进入python的交互式运行环境
python文件model.py的运行:在文件的目录下打开命令提示窗口,输入python model.py即可得到结果
Python基础语法
Python里空值,用None表示。
Python中,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量(Python是动态语言)
Python中,通常用全部大写的变量名表示常量
控制语句:
条件判断:if
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
循环:
for…in循环
name = ['li','zhao','wang']
for na in name:
print(na)
循环:while
name = ['li','zhao','wang']
i=0
while i<len(name):
print('hello, %s!' %name[i])
i = i + 1
函数:
要使用def语句来定义一个函数
def my_fun(x):
if x >= 0:
return x
else:
return -x
文件读写
读文件
with open(r'文件路径','r') as txt:
print(txt.read())
写文件
with open(r'文件路径', 'w') as txt:
txt.write('Hello, world!')
Python基本数据结构
集合
list和tuple是Python内置的有序集合,一个可变,一个不可变
list是一种有序的集合,可以随时添加和删除其中的元素,元素用[]
name = ['li','zhao','wang']
print('列出list集合:'+ str(name))
print('列出list集合:'+ str(len(name)))
print('打印name集合中第一个元素:'+ str(name[0]))
print('取集合最后一个元素:'+ str(name[-1]))
name.append('luo')
print('可以往list中追加元素到末尾'+ str(name))
name.pop()
print('删除list末尾的元素' + str(name))
name[1]='zz'
print('替换第一个位置的元素' + str(name))
tuple 是另一种有序列表叫元组,tuple和list非常类似,但是tuple一旦初始化就不能修改(tuple所谓的“不变”是说,tuple的每个元素,指向永远不变),元素用()
t = (1, 2)
t = (1,) //定义一个只有1个元素的tuple
字典
字典:dict全称dictionary,在其他语言中也称为map
name = {'li': 18,'zhao': 20,'wang': 23}
set:
set中的数据不能重复,要创建一个set,需要提供一个list作为输入集合:
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
2. Pandas基础
Pandas是Python的一个数据分析包,该工具为解决数据分析任务而创建。纳入了大量库和标准数据模型,提供高效的操作数据集所需的工具
pandas环境安装
在命令提示窗口输入:
pip install pandas
pandas数据结构:series和dataframe
Series可以认为是一维数组(只有行索引),它由一组数据以及一组与之相关的索引组成。
obj = pd.Series([4, 7, -5, 3]) #索引不指定默认为0到n-1
obj.values
obj.index #获取索引对象
DataFrame是一个表格型的数据结构,可以认为是二维数组(行索引和列索引都有)
data={'state':['qq','ww','ee','rr','tt'],
'age':[20,21,22,21,22],
'pop':[1.5,1.7,3.6,2.4,2.9]}
frame=pd.DataFrame(data)
print(frame)
3. 实践
# _*_ coding: UTF-8 _*_
import numpy as np
import pandas as pd
def averagenum(num): #平均数计算
sum=0
i=0
for i in range(len(num)):
sum+=num[i]
i=i+1
return sum/len(num)
if __name__ == '__main__':
data1 = [x * x for x in range(10)]
data1.append(5)
print(data1)
data1.sort()
print('均值(可带权重):',np.average(data1))
print('均值:',np.mean(data1))
print('中位数:',np.median(data1))
print('极大值:',np.max(data1))
print('极小值:',np.min(data1))
print('极差:',np.max(data1)-np.min(data1))
obj = pd.Series([4, 7, -5, 3])
print(obj)
obj.values
obj.index
print('方差:',obj.var())
print('标准差:',obj.std())
print('四分位极差:',obj.quantile(0.75)-obj.quantile(0.25))
print('异众比率:',1-obj.value_counts()[obj.mode()].sum()/obj.count())
print('离散系数:',obj.std()/obj.mean())
果然,deadline是第一生产力