艺赛旗 RPA9.0全新首发免费下载 点击下载
http://www.i-search.com.cn/index.html?from=line1
不再私藏,满满的干货,希望通过分享能解决伙伴们的 Excel 处理问题
一、关联:Vlookup (merage)
vlookup 是 excel 几乎最常用的公式,一般用于两个表的关联查询等。
如若需求如下:
工号,部门两列列存在于df2的表格中,所以想知道df1的每一工号对应的部门是多少。
用excel的话首先确认工号是唯一值,然后在df1新增一列写:=vlookup(a2,df2!a:h,6,0)
然而用用 python 是如何实现的呢?
python 中我们实现的方法,代码如下:
df=pd.merge(df1,df2,on=“订单明细号”,how=“left”)
在这里引申一点
df1[“订单号”].duplicated().value_counts()
此处 duplicated() 起到到去重的作用
二、数据透视表(好处谁用谁知道!!!)
需求:想知道每个营业点的收入总和
pd.pivot_table(f,index=[‘商户名’],values=[‘交易金额’,‘商户手续费’,’入账金额 ’],aggfunc=[np.sum])
可参考这个贴: 如何使用 Python 对 Excel 做一份数据透视表
引申:
1、index:
索引列;
2、values:
显示的列
3、aggfunc=[np.sum]
对values数据求和,aggfunc={“Quantity”:len,“Price”:np.sum},可为字典形式,对对应的列应用不同的方法;
sum:求和
mean:求平均
len:求长度
4、margins=True
在行位进行合计
5、fill_value=0
将非数值NaN以‘0’填充;
6、columns=[“Product”]
索引列出现在表头
7、数据显示不全,解决方案:
pd.set_option(‘display.max_rows’, None) # 行数不做限制
三、对比两列差异
代码如下:
result=sale.loc[sale[“订单号”].isin(sale[“订单号2”])==False]
会将两列有差异的数据显示出来。
引申:
我们在处理表格比对的时候,是否可以先用merage连接两表,在进行两列比对。
(好处,若数据量较大的时候,节省了数据循环比对)
四、去除重复值(相信很容易理解)
代码如下:
df.drop_duplicates(“商户号”,inplace=True)
五、缺失值处理
#用 0 填充缺失值
代码如下:
df[“交易金额”]=df[“交易金额”].fillna(0)
引申:
#删除有客户编码缺失值的行
代码如下:
df.dropna(subset=[“客户编码”])
六、多条件筛选
需求:想知道商户编号为 xxxxxx,在上海 01 区域卖的商品交易金额大于 5000 的信息。
代码如下:
df.loc[(sale[“商户名”]“上海01”)&(df[“商户编号”]“xxxxxx”)&(df[“交易金额”]>5000)]
七、 模糊筛选数据
需求: 筛选商户名含有 “上海” 或则含有 “安徽” 的信息。
代码如下:
df.loc[sale[“商户名”].str.contains(“上海|安徽”)]
八、分类汇总(groupby)
需求: 上海区域营业部的交易总额。
代码如下:
df.groupby([“地区名称”,“营业部名称”])[“交易额”].sum()
十、删除数据间的空格(数据处理的时候可能会遇到该列数据中含有空格及制表符等问题)
需求:删除商户编号两边的空格。
代码如下:
sale[“商户编号”].map(lambda s ?.strip(""))
十一、数据分列(相信处理 Excel 的时候遇到该单元格中同时含有日期与时间的问题)
需求:将日期与时间分列。
代码如下:
sale=pd.merge(sale,pd.DataFrame(sale[“日期”].str.split("
",expand=True)),how=“inner”,left_index=True,right_index=True)
!!!补充技巧:
有的时候我们可以先写一份模板文件,每次用的时候,可以复制到指定路径,并改名为指定的文件名。(好处,格式化,表头更为美观,列的宽度可以设定,文本的格式可以设定)当然可以包括,我模板中对某些列设定vlookup函数。当然我们也可以通过设计器中组件单元格写入,写入vlookup函数。
这 11 点,关于处理 Excel 的方法,你 get 到了吗?
欢迎补充!!!