最近在学习pandas,虽然大部分功能Excel有可视化替代,但是速度肯定不如自己搞更快的嘛。
1.查出两组数据中不重复的部分
场景
供应商A的库存和供应商B的库存相似,但是畅销款不同,需要通过数据对比,找出对应的畅销款,并独立制定供货计划。
import pandas as pd
import numpy as np
//np可以不导入,本例子中未使用到该包
file_name1 = '文件路径1'
file_name2 = '文件路径2'
//Excel的使用该方法,CSV也是用对应的CSV等方法
data1 = pd.read_excel(file_name1) #reading file
data2 = pd.read_excel(file_name2)#GROUP
//合并两组数据
data3 = pd.concat([data1,data2])
//数据去重
data3 = data3.drop_duplicates(keep=False,inplace=True)
//去重后重新建立索引
data3 = data3.reset_index()
//打印不重复的部分
print(data3)
2.单组数据去重复项
场景,有原始数据一堆,但是想取不重复项进行编号,此时可以直接用Excel的功能实现,但是为了锻炼pandas特意使用python完成此操作。
import pandas as pd
# 导入文件
file_name1 = "C:/Users/工作簿1.xlsx"
data1 = pd.read_excel(file_name1) #reading file
# subset:表示要进去重的列名,默认为 None。
# keep:有三个可选参数,分别是 first、last、False,默认为 first,表示只保留第一次出现的重复项,删除其余重复项,last 表示只保留最后一次出现的重复项,False 则表示删除所有重复项。
# inplace:布尔值参数,默认为 False 表示删除重复项后返回一个副本,若为 Ture 则表示直接在原数据上删除重复项。
data1.drop_duplicates(keep="first",inplace=True)
data1=data1.reset_index(drop=True)
data1.columns=["供应商"]
print(data1)
#不打印索引,不打印列名行
data1.to_excel("C:/Users/工作簿2.xlsx",index=False,header=None)
#Python的boolean需要为True 或者 False 值要等于覆盖才会写入,Excel有直接去除重复项