ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Python进阶教程:数据分析入门(NumPy与Pandas)

Python进阶教程:数据分析入门(NumPy与Pandas) 目录Python进阶教程数据分析入门NumPy与Pandas一、数据分析生态二、NumPy数值计算2.1 创建数组2.2 数组运算三、Pandas数据表处理3.1 Series 与 DataFrame3.2 读取与查看数据3.3 数据清洗3.4 分组聚合四、实战分析销售数据总结Python进阶教程数据分析入门NumPy与Pandas本文是Python 入门教程系列的第 8 篇。前面介绍了数据库操作本篇介绍数据分析的两大核心库NumPy与Pandas。一、数据分析生态Python 数据分析生态NumPy科学计算基础库提供多维数组Pandas数据分析利器提供 DataFrame 数据结构Matplotlib数据可视化Scikit-learn机器学习安装pip install numpy pandas matplotlib二、NumPy数值计算2.1 创建数组importnumpyasnp# 从列表创建arr1np.array([1,2,3,4,5])print(arr1,arr1.shape)# [1 2 3 4 5] (5,)# 二维数组arr2np.array([[1,2],[3,4]])print(arr2.shape)# (2, 2)# 常用创建方式zerosnp.zeros((2,3))# 全 0onesnp.ones((2,2))# 全 1randnp.random.rand(3)# 随机数range_arrnp.arange(0,10,2)# [0 2 4 6 8]2.2 数组运算importnumpyasnp anp.array([1,2,3])bnp.array([4,5,6])print(ab)# [5 7 9] 向量化运算无需循环print(a*2)# [2 4 6]print(a**2)# [1 4 9]print(a.mean())# 2.0 均值print(a.sum())# 6 求和print(a.max())# 3 最大值print(np.dot(a,b))# 32 点积三、Pandas数据表处理3.1 Series 与 DataFrameimportpandasaspd# Series一维数据带索引spd.Series([10,20,30],index[a,b,c])print(s[b])# 20# DataFrame二维表格data{姓名:[张三,李四,王五],年龄:[20,22,21],成绩:[88.5,92.0,95.5],}dfpd.DataFrame(data)print(df)print(df.shape)# (3, 3)print(df.columns)# 列名3.2 读取与查看数据importpandasaspd# 读取 CSV 文件# df pd.read_csv(data.csv)# 模拟数据dfpd.DataFrame({name:[Alice,Bob,Charlie,David],age:[25,30,35,40],salary:[50000,60000,70000,80000],})print(df.head())# 前 5 行print(df.info())# 数据概览print(df.describe())# 统计描述print(df[age].mean())# 某列均值 32.5print(df[df[salary]60000])# 条件筛选3.3 数据清洗importpandasaspdimportnumpyasnp dfpd.DataFrame({name:[Alice,None,Charlie],age:[25,None,35],score:[88,92,None],})print(df.isnull().sum())# 查看缺失值dfdf.dropna()# 删除含缺失值的行dfdf.fillna(0)# 或用 0 填充缺失值# 新增计算列df[age_plus]df[age]13.4 分组聚合importpandasaspd dfpd.DataFrame({部门:[技术,技术,市场,市场,市场],员工:[A,B,C,D,E],工资:[10000,12000,8000,9000,9500],})# 按部门分组求平均工资groupeddf.groupby(部门)[工资].mean()print(grouped)# 市场 8833.33# 技术 11000.00# 多列聚合print(df.groupby(部门).agg({工资:[mean,max,sum]}))四、实战分析销售数据importpandasaspd# 模拟一份销售数据salespd.DataFrame({日期:pd.date_range(2026-01-01,periods30),商品:[f商品{i%31}foriinrange(30)],销量:[20i%7*5foriinrange(30)],金额:[100i*3foriinrange(30)],})print( 数据概览 )print(sales.describe())print( 各商品总销量 )print(sales.groupby(商品)[销量].sum())print( 销量最高的 3 天 )print(sales.nlargest(3,销量)[[日期,销量]])print( 总销售额 )print(f{sales[金额].sum():.0f} 元)总结本篇介绍了 NumPy 数组运算和 Pandas 的 Series、DataFrame、数据清洗、分组聚合并用销售数据分析串联实战。下一篇将介绍Web 开发入门Flask敬请期待
返回列表