[工作必备]pandas数据分析处理52个常用技巧

本文分享了Python pandas库的强大功能,涵盖了筛选、排序、计算、透视表、VLOOKUP等Excel常用功能,帮助非计算机专业的你高效处理数据。52个实用技巧和100+知识点,助你快速上手数据分析。
摘要由CSDN通过智能技术生成

python中的第3方工具包pandas功能强大, 日常工作中比如筛选、排序、计算、透视、vlookup、分类汇总等excel常用操作用pandas也能轻松实现;
本文精心整理的pandas数据处理与分析的52个技巧, 100多个知识点, 掌握这些,处理数据不再是难事!

零基础学习python数据分析, 建议安装anaconda, 可通过下面网址安装 : 清华镜像

配套相关基础课程, 理论+实践: 欢迎订阅 →

  • 1 导入工具包
# pandas 和numpy是两个基础的工具包
import numpy as np
import pandas as pd
# matplotlib seaborn是作图工具包
import matplotlib.pyplot as plt
import seaborn as sns
# 通过os设置默认路径
import os
os.chdir('C:/Users/用户/Desktop/')  # 桌面的路径
# 图表中文显示问题
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
# 不显示预警
import warnings  
warnings.filterwarnings('ignore')
  • 2 spyder中快捷键
# 注释、取消注释
Ctrl+1
# 块注释 / 取消块注释  
Ctrl+4/5
# 从当前光标所在行开始执行
F9
  • 3 读取excel数据
# 读取文件
df = pd.read_excel('文件.xlsx')
# 读取文件同时筛选需要的列
df = pd.read_excel('文件.xlsx')[['','']] # 读取并筛选几列
# 读取特定的工作表
df = pd.read_excel('文件.xlsx',sheet_name='明细') # 读取某个sheet表
# with方法读取
with pd.ExcelFile('path_to_file.xls') as xls:
    df1 = pd.read_excel(xls, 'Sheet1')
    df2 = pd.read_excel(xls, 'Sheet2')
  • 4  读取csv或者txt
# 分隔符: \s 表示空白字符; \s+多个空白字符; \r回车; \n换行; \t水平制表符; \v垂直制表符
df = pd.read_csv('文件.txt',sep='\s+',error_bad_lines=False)    
  • 5 批量读取同一文件夹下文件方式1
for root, dirs, files in os.walk('.',topdown=False):
    print(files)
num = len(files)   # 获取文件个数
data = pd.DataFrame()  # 定义一个空的dataframe
# 遍历所有文件
for i in range(num):
    datai = pd.read_excel('./%s' %files[i])   
    datai_len = len(datai)
    data = data.append(datai)   # 添加到总的数据中
    print('文件%i列, 第%i个表,读取%i行数据,名称:%s'%(len(data.columns),i,datai_len,files[i]))     # 查看是否全部读取,格式是否出错
    
data.reset_index(drop=True,inplace=True)
  • 6 批量读取同一文件夹下的文件方式2
# 导入工具包
import pandas as pd
import numpy as np
import os

# 路径
path = 'd:/文件路径/'

# 文件列表
files = []
for file in os.listdir(path):
    if file.endswith(".csv"):
        files.append(path+file)

# 定义一个空的dataframe
data = pd.DataFrame()  

# 遍历所有文件
for file in files:
    datai = pd.read_csv(file,encoding='gbk')
    datai_len = len(datai)
    data = data.append(datai)   # 添加到总的数据中
    print('读取%i行数据,合并后文件%i列, 名称:%s'%(datai_len,len(data.columns),file.split('/')[-1]))     
    # 查看是否全部读取,格式是否出错
# 重置索引    
data.reset_index(drop=True,inplace=True)
  • 7 批量读取同一文件夹下得文件方式3(当txt文件不规范,读取会丢失数据或文件太大时)
# 循环读取数据
n = 1
for file in files:    
    with open(file, 'r',encoding='gbk') as f_input:
        lisi= []
        for line in f_input:
            lisi.append(list(line.strip().split('|')))
            
    datai = pd.DataFrame(lisi)
    datai2 = guolv(datai)
    data = data.append(datai2)
            
    print('读取第%i个文件,件名%s,文件%i行,文%i列.处理后文件%i行,%i列' %(n,file,datai.shape[0],datai.shape[1],datai2.shape[0],datai2.shape[1]))
    n = n + 1
  • 8 文件导出,放在同一工作簿
with pd.ExcelWriter('文件.xlsx') as writer:
    df1.to_excel(writer, sheet_name='文件1')
    df2.to_excel(writer, sheet_name='文件2')
  • 9 文件导出, 分组导出放在同一工作簿
writer = pd.ExcelWriter('文件.xlsx')
for name , group in df.groupby('名称'):
    group.to_excel(writer,sheet_name=name,index=False)
  • 10 文件导出, 分组导出, 放在不同工作簿
for name , group in df.groupby('名称'):
    group.to_excel(name+'.xlsx',index=False)
  • 11 获取当前时间
import time
tim = time.strftime("%Y-%m-%d%H%M%S", time.localtime()) 
  • 12 保存图片分辨率设置
plt.savefig('名称.png',dpi=150)  
  • 13 数据查看
df.describe()   # 描述统计
df.info()    # 基本信息
df.dtypes    # 列格式类型
df.head(2)    #前n行
df.tail(2)    #后n行
df.shape    #维度
df.index  #索引
df.columns  #列名
df.sample(10)   #随机抽样
df.resample()  #随机抽样
  • 14 行列处理(删除,排序)
# 删除列
del df['变量名']
df.drop('变量名',axis=1,inplace=True)
# 删除行
df.drop('c')
# 更改列名
df.columns= ['var1','var2','var3']  # 列名的个数 = 字段个数
df.rename(columns = {'名称前':'名称后'},inplace=True)   # columns 不能少
# series中改列名
s.rename('名称',inplace=True)
# 调整列的顺序
df1 = df1[['var1','var2','var3']]
# 调整行的顺序
df2 = df1.reindex(['a','b','c','d','e']) # 返回一个新的DataFrame,按新的索引进行排序
  • 15  缺失值(查看,替换,计数)
# 判断是否是缺失值
df.isnull()  #不
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python技巧(数据分析及可视化)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值