工作中常用python处理方法

本文介绍了Python在处理大数据时的一些实用方法,包括使用pandas读取和导出txt、csv、excel文件,处理文件编码问题,文件拼接,实现类似Excel的VLOOKUP功能,创建数据透视表,筛选和操作数据,以及数据可视化的基本步骤。这些技巧对于日常的数据处理和分析工作非常有用。
摘要由CSDN通过智能技术生成

工作中常用python处理方法——当excel处理不了大数据量时

1、python读取文件:
(1)读取txt:同读取csv

pd.read_csv('路径')

(2)读取excel

pd.read_excel('路径')

读取excel文件会提示先安装包,按照提示安装完成后,直接读取。
读取某一个sheet:pd.read_excel(‘路径’, sheet_name=‘sheet名’)
(3)读取csv

pd.read_csv('路径')

提示:如果读取文件是乱码,可能是编码问题,可以添加encoding=‘gb18030’

pd.read_csv('路径', encoding = 'gb18030')

2、导出文件
(1)txt格式

data.to_csv('路径\文件名.txt‘, encoding='utf_8_sig', index=False)

(也是用to_csv,只不过文件名后缀为.txt)

(2)excel格式

data.to_excel('路径\文件名.xlsx‘, encoding='utf_8_sig', index=False)

(3)csv格式

data.to_csv('路径\文件名.csv‘, encoding='utf_8_sig', index=False)

总结:
1)txt和csv格式读取和保存都是pd.read_csv()和pd.to_csv(),只不过读取和保存时文件名后缀的区别;
2)excel读取和保存分别使用read_excel、to_excel。
3)读取文件如果出现乱码,添加encoding=‘gb18030’;
如果是写入文件,防止出现乱码,添加encoding=‘utf_8_sig’
4)index=False的作用是设置不显示第一列序号列(一般没有用,直接删除)

3、文件拼接
(1)整合文件(应用场景:日报明细合并)
思路:使用for循环持续读取并写入文件中

import pandas as pd
import os

# 要拼接的文件夹及其完整路径,注意不要包含中文
Folder_Path = '待读取文件路径'
# 拼接后要保存的文件路径
SaveFile_Path = '保存路径'
 # 合并后要保存的文件名
SaveFile_Name = '合并后文件名'   

# 修改当前工作目录
os.chdir(Folder_Path)
# 将文件夹下所有的文件名存入一个列表
file_list = os.listdir()

# 读取第一个csv文件,且包含表头
df = pd.read_excel(Folder_Path + '\\' + file_list[0],sheet_name='sheet名')
# 将读取的文件写入到拟合并的文件中,并保留表头
df.to_csv(SaveFile_Path+'\\' + SaveFile_Name, encoding='utf_8_sig',index=False)
# 循环遍历列表中文件,并持续写入合并文件中
for i in range(i,len(file_list)):
	df = pd.read_excel(Folder_Path + '\\' + file_list[i], sheet_name = 'sheet名')
	df.to_csv(SaveFile_Path+'\\' + SaveFile_Name, encoding="utf_8_sig", index=False, header=False, mode='a+')

提示:

  • 读取文件是有表头的,那么在写入的时候设置header=False
  • 由于to_csv默认mode=w,w模式会清空原文件再重新写入新的数据,通过设置mode=a,可以实现持续追加数据。
    参考:https://blog.csdn.net/DL_min/article/details/110683382

4、pandas用merge实现excel中的vlookup实现

#左连接
df1_merge_df2 = pd.merge(df1, df2, how='left')
#右连接
df1_merge_df2 = pd.merge(df1, df2, how='right')
#交集
df1_merge_df2 = pd.merge(df1, df2, how='inner')

参考:https://blog.csdn.net/qq_35189715/article/details/102878190?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.control

5、数据透视表实现

# 透视数据
df_p = df.pivot_table(index='客户名称',    # 透视的行,分组依据
                      values='销量',    # 值
                      aggfunc='sum'    # 聚合函数
                     )
# 对透视表进行降序排列
df_p = df_p.sort_values(by='销量',    # 排序依据
                        ascending=False    # 是否升序排列
                       )

参考:https://www.cnblogs.com/shanger/p/13245669.html

6、筛选功能:

# 选择新增办理的用户集
df = df[df['是否新增办理']==0]
# 多条件筛选
df = df[(df['出账费'] == 0) & (df['饱和度'] <= 0.7) & (df['价值提升']>-5)]

7、删除行/选特定行列

# 选特定列
df = df[['xx','xx']]
# 删除列
df = df.drop('列名', axis=1, inplase=True) #改变原值
df = df.drop('列名', axis=1) #不改变原址

参考:https://blog.csdn.net/weixin_39611765/article/details/113494796

8、计算字段:求和、求平均等

# 求均值
df_avg = df['列名'].mean()
# 求和
df_sum = df['列名'].sum()

9、tableau图形化展示(能处理PB级数据量)
大数据思路:python预处理数据,导出csv,传到tableau图形化展示
入门推荐:B站未明学院《Tableau零基础教程》,网址https://www.bilibili.com/video/BV1E4411B7ef?from=search&seid=6498237034144950886

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值