pandas数据分析处理52个常用技巧
导入工具包
折叠代码块PYTHON
复制代码
spyder中快捷方式
折叠代码块PYTHON
复制代码
1 | # 注释、取消注释 |
读取excel文件
折叠代码块PYTHON
复制代码
1 | # 读取文件 |
读取csv和txt文件
折叠代码块PYTHON
复制代码
1 | # 分隔符: \s 表示空白字符; \s+多个空白字符; \r回车; \n换行; \t水平制表符; \v垂直制表符 |
批量读取同一文件夹下文件1
折叠代码块PYTHON
复制代码
1 | for root, dirs, files in os.walk('.',topdown=False): |
批量读取同一文件夹下的文件2
折叠代码块PYTHON
复制代码
批量读取同一文件夹下的文件3
折叠代码块PYTHON
复制代码
1 | # 循环读取数据 |
数据导出为excel,同一工作簿
折叠代码块PYTHON
复制代码
1 | with pd.ExcelWriter('文件.xlsx') as writer: |
数据导出为excel,分组导出到同一工作簿
折叠代码块PYTHON
复制代码
1 | writer = pd.ExcelWriter('文件.xlsx') |
数据导出为excel,分组导出到不同的工作簿
折叠代码块PYTHON
复制代码
1 | for name , group in df.groupby('名称'): |
获取当前时间
折叠代码块PYTHON
复制代码
1 | import time |
保存图片分辨率设置
折叠代码块PYTHON
复制代码
1 | plt.savefig('名称.png',dpi=150) |
数据查看
折叠代码块PYTHON
复制代码
1 | df.describe() # 描述统计 |
行列处理(删除、排序)
折叠代码块PYTHON
复制代码
1 | # 删除列 |
缺失值(查看、替换、计数)
折叠代码块PYTHON
复制代码
重复值(查看、删除)
折叠代码块PYTHON
复制代码
修改格式((格式转换, 百分比, 格式判断))
折叠代码块PYTHON
复制代码
1 | # 改变列的格式(文本型数值改成数值型数值) |
普通筛选
折叠代码块PYTHON
复制代码
1 | # loc筛选:选择符合条件的行 |
逻辑判断后筛选
折叠代码块PYTHON
复制代码
分组后筛选
折叠代码块PYTHON
复制代码
替换
折叠代码块PYTHON
复制代码
字符串处理
折叠代码块PYTHON
复制代码
1 | print('我的名字是%s,今年%i岁,体重%.2f'%('小明',20,70.1)) |
字符串判断
折叠代码块PYTHON
复制代码
1 | # 判断是否为某一特定格式 |
字符串拆分
折叠代码块PYTHON
复制代码
1 | s.str.split('_') # 拆分,结果是列表 |
索引
折叠代码块PYTHON
复制代码
排序
折叠代码块PYTHON
复制代码
1 | # na_position对NaN值的处理方式,可以选择first和last两种方式 |
日期
折叠代码块PYTHON
复制代码
判断是否为假期
折叠代码块PYTHON
复制代码
1 | import datetime |
数据分组
折叠代码块PYTHON
复制代码
1 | # 方法1 |
多表合并
折叠代码块PYTHON
复制代码
1 | # 默认纵向连接,产生新的坐标轴 |
常用函数
折叠代码块PYTHON
复制代码
描述性统计
折叠代码块PYTHON
复制代码
1 | df.describe(include=['object']) #object - 汇总字符串列 number - 汇总数字列 all - 将所有列汇总在一起(不应将其作为列表值传递) |
数据预览
折叠代码块PYTHON
复制代码
1 | # 在cmd中安装 |
显示百分比
折叠代码块PYTHON
复制代码
1 | # 元素变化百分比 每个元素与其前一个元素进行比较,并计算变化百分比 |
协方差
折叠代码块PYTHON
复制代码
1 | # 协方差,cov用来计算序列对象之间的协方差 |
相关性
折叠代码块PYTHON
复制代码
1 | # 相关性,pearson(默认),spearman和kendall之间的相关性 |
排名
折叠代码块PYTHON
复制代码
1 | s.rank() 或者 df.rank() |
分组计算
折叠代码块PYTHON
复制代码
交叉表
折叠代码块PYTHON
复制代码
1 | result1 = pd.crosstab(data.index,data['产业线'],margins=True) |
数据透视表
折叠代码块PYTHON
复制代码
1 | df.pivot_table('价格',index='产地',columns='类别',aggfunc='max',margins=True,fill_value=0,margins_name='合计') |
窗口函数
折叠代码块PYTHON
复制代码
1 | #索引需要为日期 对于明细数据,计算固定大小区域的指标 |
标准化
折叠代码块PYTHON
复制代码
1 | # 当越小越好时 |
去除异常值
折叠代码块PYTHON
复制代码
1 | def f2(data,col): |
正态分布
折叠代码块PYTHON
复制代码
1 | data_norm = pd.DataFrame({'正太分布':np.random.normal(loc=60,scale=15,size=10000)}) |
随机选择
折叠代码块PYTHON
复制代码
1 | df['strategy'] = np.random.choice([1,2,3],99) |
行列求和
折叠代码块PYTHON
复制代码
1 | # 增加列合计 |
数据平移
折叠代码块PYTHON
复制代码
1 | data['经度_前1天'] = data.groupby('var')['经度'].shift(1) |
宽窄表转换
折叠代码块PYTHON
复制代码
转二维表
折叠代码块PYTHON
复制代码
1 | df.to_numpy() |
字典转列表
折叠代码块PYTHON
复制代码
1 | df.set_index('ID').T.to_dict('list') |
转字典列表
折叠代码块PYTHON
复制代码
1 | datajs = data.to_json(orient='records',force_ascii=False) |
两列中的较大值
折叠代码块PYTHON
复制代码
1 | df['z']=df[['x','y']].max(axis=1) |