数据分析打怪升级进度:day03
一:python基础
(一):python优势
- 数据分析领域中python开发者最多
- python语言简洁、有大量第三方库
(二):Python IDE推荐
- Pycharm
- Visual Studio Code
(三):基础语法
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基础
(一):Numpy底层数据结构好
- Numpy数组存储存储在一个均匀连续的内存块中
- Numpy利用CPU矢量化计算,高效快速
- 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))
三:Pandas基础
(一):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())
(三):统计函数操作
- describe()函数
df = pd.DataFrame
# 描述函数信息
df.describe()
- merge()函数
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='合并方式')
- 在这个星球上,你很重要,请珍惜你的珍贵! ~~~夜斗小神社