数据分析打怪升级进度:day03
(一):python优势
(二):Python IDE推荐
(三):基础语法
1-1:简单输入打印语句
dream = input("你的梦想是什么?") print(dream)
1-2:条件判断语句
level = int(input("输入你的篮球水平:")) if level == 1: print("超级高水平!") else: print("青年队球霸!")
1-3:for循环和while循环
# 求1加到100的和 sum = 0 for i in range(1,101): sum = sum + i print(sum)
sum = 0 i = 1 while i<=100: sum = sum+i i = i + 1 print(sum)
1-4:列表、元组、集合、字典
# 列表操作增删改查 a = [] # 添加一个元素'夜斗小神社' a.append('夜斗小神社') # 打印a列表的长度 print(len(a)) # 插入一个元素 a.insert(1, 'CSDN') print(a) # 弹出一个元素 a.pop() print(a)
# 元组(一旦初始化就不能改) a = ('夜斗小神社', 'CSDN') print(a)
# 集合 a = set(['夜斗小神社', 'CSDN']) a.add('财富自由') print(a) a.remove('CSDN') print(a)
# 字典 a = {'夜斗小神社':"CSDN"} # 定义一个字典 print(a) a['打卡学习'] = 'day03' # 添加一个元素 print(a) a.pop('夜斗小神社') # 删除一个元素 print(a) result = a.get('打卡学习') # 获取元素 print(('夜斗小神社' in a)) # 夜斗小神社是否在a里面
1-5:函数
def function(): print("进入函数内部") # 调用函数 print("开始调用函数") function()
(一):Numpy底层数据结构好
(二):基础语法
2-1:创建ndarray数组对象
import numpy as np # 导入模块命名为np a = np.array([['!', '@', '$'],['a','b','c']]) # 创建ndarray数组 print(a) print(a.shape) # 打印形状
2-2:dtype定义结构
#coding:utf8 import numpy as np # 导入模块命名为np struct_type = np.dtype({'names':['CSDN','level','start'], # 定义字段 'formats':['S32','i', 'i']}) # formats数据类型 a = np.array([('YEDOU','4','1005')], dtype=struct_type) # ndarray数组 print(a)
2-3:常用函数
#coding:utf8 import numpy as np # 导入模块命名为np # 1:连续数组的创建 s1 = np.arange(1, 12) # 左闭右开 print(s1) s2 = np.linspace(1, 11,11) # start stop 元素个数 print(s2) s3 = np.arange(1, 13).reshape(3, 4) print(s3) # 2:常见计算 print(np.add(s1,s2)) # 加 print(np.subtract(s1,s2)) # 减 print(np.multiply(s1,s2)) # 乘 print(np.divide(s1,s2)) # 除 print(np.power(s1,s2)) # n次方 print(np.remainder(s1,s2)) # 取余数 # 3:聚合函数 print(np.amin(s3)) # 全部元素最小值 print(np.amin(s3,0)) # 沿着axis=0最小值 从列看 4列 print(np.amin(s3,1)) # axis=1最小值 从行看 3行 print(np.ptp(s3)) # 最大值与最小值之差 print(np.ptp(s3,0)) # axis=0 print(np.ptp(s3,1)) # axis=1 print(np.percentile(s3, 50)) # 百分位数 print(np.percentile(s3, 50, axis=0)) print(np.percentile(s3, 50, axis=1)) print(np.median(s3)) # 求中位数 print(np.mean(s3)) # 求平均数 print(np.average(s3)) # 加权平均数 print(np.std(s3)) # 标准差 print(np.var(s3)) # 方差 # 4: 排序 print(np.sort(s3))
(一):Series结构
3-1:创建定长的字典序列
#coding:utf8 import pandas as pd # 1:data为列表 x1 = pd.Series([1, 2, 3, 4]) # 2:data为列表,创建index索引 x2 = pd.Series(data=[1,2,3,4],index=['a','b','c','d']) print(x1) print(x2) # 3:data为字典 d = {'a':1, 'b':2,'c':3} x3 = pd.Series(d) print(x3)
(二):DataFrame结构
3-2:创建DataFrame
#coding:utf8 import pandas as pd data = {'Chinese': [1,2,3,4],'English':[5,6,7,8]} # 默认索引index df1 = pd.DataFrame(data) print(df1) # 添加索引index df2 = pd.DataFrame(data, index=['ZF', 'GY', 'LB', 'DC']) print(df2)
(三):常见的函数操作
3-3:数据导入和导出
import pandas as pd # 导入excel文件 s1 = pd.read_excel('./你的文件名.xlsx') # 导出为excel表 s2 = pd.DataFrame(s1) s2.to_excel('./文件名.xlsx')
3-4:数据清洗利器
# 1:删除不必要的行和列 df = pd.DataFrame() df.drop(columns=['你要删掉的列名']) df.drop(index=['你要删掉的行名'])
# 2:重命名列名 df = pd.DataFrame df.rename(columns={'更换前':'更换后'})
# 3:去掉重复的行 df = pd.DataFrame df = df.drop_duplicates()
# 4:更改数据格式 df = pd.DataFrame df['列名'].astype('数据类型')
# 5:删除数据间的空格 df = pd.DataFrame df['列名'] = df['列名'].map(str.strip())
# 6:大小写转换 df = pd.DataFrame # 大写 df.columns = df.columns.str.upper() # 小写 df.columns = df.columns.str.lower() # 首字母大写 df.columns = df.columns.str.title()
# 7:查找空缺值 df = pd.DataFrame df.isnull.any()
# 8:apply函数数据处理 df = pd.DataFrame # 将列名大写 df['列名'] = df['列名'].apply(str.upper())
(三):统计函数操作
df = pd.DataFrame # 描述函数信息 df.describe()
import pandas as pd # 合并两个表 df1 = pd.DataFrame() df2 = pd.DataFrame() df3 = pd.merge(df1, df2, on='基于哪个列名进行连接') # how: inner内连接 left左连接 right右连接 outer外连接 df4 = pd.merge(df1, df2, how='合并方式')