# python-ready-made-code **Repository Path**: snow-release/python-ready-made-code ## Basic Information - **Project Name**: python-ready-made-code - **Description**: 现成,可直接复用的代码。主要涵盖数据分析的数据清洗、数据可视化,以及分析思路。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-04 - **Last Updated**: 2023-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Python 编程基础 --- ## 一、python基础 待定 --- ## 二、NumPy科学计算库 >备注:该板块内容略过**[‘第三部分_数组运算’,‘第四部分_复制和视图’,‘第五部分索引、切片和迭代’,‘第七部分_广播机制’,‘第八部分_通用函数’] 和 {‘第一部分’:‘文件IO操作’,‘第六部分’:‘split数组拆分’}** ### 2.1 基础操作 **第一节 数组创建** ```python arr1 = np.array(l) # 列表转换为数组 arr = np.arange(0,20,2) #等差数列 arr = np.linspace(0,9,10) # 等差数列 arr = np.random.randn(5) # 正太分布 arr = np.random.random(5) # 随机数 ``` **第二节 查看操作** ```python arr = np.random.randint(0,100,size=(3,4,5)) arr.ndim # 数组的维度 ``` 3 ```python arr.shape #数组的尺寸形状 ``` (3,4,5) ```python arr.size #数组元素总和数 ``` 60 ```python arr.dtype #查看数据类型 ``` dtype(‘int64’) **第三节 文件的IO操作** 略 ### 2.2 数据类型 **ndarray的数据类型:** - int:int8,uint8,int16,int32 - float:float16,float32,float64 **创建时,指定数据类型** ```python np.array([1,2,3,4],dtype='float32') ``` **asarray转换时指定** ```python np.asarray(arr,dtype='float32') ``` **数据类型转换astype** ```python arr.astype('float32') ``` ### 2.3 条件查找 ```python cond = arr > 90 arr[cond] #返回满足cond条件的值 ``` ### 2.6 形状操作 **数组变形** ```python arr.reshape(12,5) #返回新形状 arr.reshape(-1,5) #主动整形 ``` **数组转置** ```python arr.T #转置 np.transpose(arr,axes=(2,0,1)) ``` **数组堆叠** ```python np.concatenate([arr1,arr2],axis=0) #在1维方向连接 np.hstack((arr1,arr2)) np.vstack((arr1,arr2)) ``` --- ## 三、Pandas数据分析库 ### 3.2 数据结构 **Series** ```python s1 = pd.Series(data,index,name) ``` **DataFrame** ```python df = pd.DataFrame(data,index,columns) ``` 备注: data:list or dict index:int or str or None columns:str or None ### 3.3 数据查看 ```python df.head() df.tail() df.shape df.dtypes df.index df.columns df.values df.describe() df.info() ``` ### 3.5 数据选取 **获取数据** ```python df['name'] df.name df[['name1','name2']] df[3:15] ``` **标签选取** ```python df.loc[['A','B','C']] df.loc[['A','B'],['column1','column2']] df.loc['A','B':2, 'column1':'column2'] ``` **位置选取** ```python df.iloc['index','column'] ``` **boolean索引** ```python cond = (df.Python > 50)&(df.Python > 10) df[cond] df[df > 50] df[df.index.isin(['A','B'])] ``` ### 3.6 数据集成 concat数据串联 ```python pd.concat([df1,df2],axis=0) #行 df1.append(df2) #行 pd.concat([df1,df2],axis=1) #列 ``` 插入 ```python df.insert( loc=1,column='name',values='name') ``` join SQL风格合并 ```python # 左右通过交集连接 pd.merge(df1,df2, how = 'inner',on = 'name') # 指定列连接 pd.merge(df1,df2, how = 'inner', left_on = 'name', right_on = '名字') # 指定index连接 pd.merge(df1,df2, left_index=True, right_index=True) ``` ### 3.7 数据清洗 **重复数据过滤** ```python pd.duplicated() pd.drop_duplicates() ``` **空数据过滤** ```python df.isnull().any() df.isna().sum() df.dropna(how = any) # 删除空数据 df.fillna(value = 11) # 空值填充 ``` **指定行或列过滤** ```python del df['column'] # 删除指定列 df.drop(label=['column'],axis=1) # 删除指定列 df.drop(label=[0,1,2],axis=0) # 删除指定行 ``` **函数filter**(没什么用) ```python df.filter(items=['name1','name2']) df.filter(regex='a&',axis=1) df.filter(like='og',axis=0) ``` **指定多行或列过滤** ```python index = df[cond].index df.drop(label=index,axis=0) ``` ### 3.8 数据转换 **重命名** ```python df.rename( index={…},columns={'name':'name2'}) ``` **替换值** ```python df.replace(3,1024) df.replace([0,2],1024) df.replace({0:23,'a':98}) df.replace({'python':2},1024) ``` **map Series 元素改变** ```python df['column'].map({'a',10}) df['column'].map(lambda…) df['column'].map(func1) ``` **apply元素改变 即支持Series也支持DataFrame** ```python df.apply(lambda…,axis=1) df['column'].apply(lambda…) df['column'].apply(func1) df.apply({'python':np.min,'Mane':np.max }) df.apply(np.mean,axis=1) #对行应用 ``` ### 3.9 数据分组、透视、排序 ```python # 排序 df.sort_index() df.sort_values([col1,col2],ascending=[True,False]) df.groupby( ['customer', 'product']).agg( {'quantity': 'sum', 'price': ['sum', 'mean']}) ``` ![image-20231105183222624](https://gitee.com/snow-release/typoralmage/raw/master/image-20231105183222624.png)