

In [19]:
import pandas as pddf=pd.read_excel(r'D:\CDA\CDA_PGC\datas.xlsx',sheetname='Sheet1') df
Out[19]:
编号 | 日期 | |
---|---|---|
0 | 123 | 2020-09-09 |
1 | 123 | 2020-09-08 |
2 | 345 | 2020-09-09 |
3 | 345 | 2020-09-08 |
4 | 345 | 2020-09-09 |
5 | 123 | 2020-09-09 |
In [20]:
df=df.drop_duplicates()
In [21]:
df['日期']=df['日期'].dt.date.apply(str)
In [22]:
df
Out[22]:
编号 | 日期 | |
---|---|---|
0 | 123 | 2020-09-09 |
1 | 123 | 2020-09-08 |
2 | 345 | 2020-09-09 |
3 | 345 | 2020-09-08 |
In [23]:
df.to_excel(r'D:\CDA\CDA_PGC\datas2.xlsx',index=None)#删除index列

import pandas as pd df=pd.read_excel(r'D:\CDA\CDA_PGC\datas.xlsx',sheetname='Sheet1') df['日期']=df['日期'].dt.date #去掉‘时分秒’(从excel导入的日期数据默认00:00:00) df['合并列']=df['编号'].map(str)+','+df['日期'].map(str) #将pandas默认的pandas默认的int64类型转为字符串df
Out[15]:
编号 | 日期 | 合并列 | |
---|---|---|---|
0 | 123 | 2020-09-09 | 123,2020-09-09 |
1 | 123 | 2020-09-08 | 123,2020-09-08 |
2 | 345 | 2020-09-09 | 345,2020-09-09 |
3 | 345 | 2020-09-08 | 345,2020-09-08 |
4 | 345 | 2020-09-09 | 345,2020-09-09 |
5 | 123 | 2020-09-09 | 123,2020-09-09 |
In [16]:
df.drop_duplicates('合并列',inplace=True)df
Out[16]:
编号 | 日期 | 合并列 | |
---|---|---|---|
0 | 123 | 2020-09-09 | 123,2020-09-09 |
1 | 123 | 2020-09-08 | 123,2020-09-08 |
2 | 345 | 2020-09-09 | 345,2020-09-09 |
3 | 345 | 2020-09-08 | 345,2020-09-08 |
In [17]:
df.drop(labels=['编号','日期'],axis=1,inplace=True)df
Out[17]:
合并列 | |
---|---|
0 | 123,2020-09-09 |
1 | 123,2020-09-08 |
2 | 345,2020-09-09 |
3 | 345,2020-09-08 |
In [18]:
df['编号'],df['日期']=df['合并列'].str.split(',',1).str df
Out[18]:
合并列 | 编号 | 日期 | |
---|---|---|---|
0 | 123,2020-09-09 | 123 | 2020-09-09 |
1 | 123,2020-09-08 | 123 | 2020-09-08 |
2 | 345,2020-09-09 | 345 | 2020-09-09 |
3 | 345,2020-09-08 | 345 | 2020-09-08 |
In [19]:
df=df.drop(labels=['合并列'],axis=1)df
Out[19]:
编号 | 日期 | |
---|---|---|
0 | 123 | 2020-09-09 |
1 | 123 | 2020-09-08 |
2 | 345 | 2020-09-09 |
3 | 345 | 2020-09-08 |
In [20]:
df.to_excel(r'D:\CDA\CDA_PGC\datas2.xlsx',index=None)#删除index列

data1 = b.drop_duplicates(keep = False)
data2 = b.drop_duplicates(keep = "first")
data2.append(data1).drop_duplicates(keep= False)
这样写 , 不要subset参数了

是这么写吗
data2 = data1.drop_duplicates(subset=["编号","日期"])
data3 = data1.drop_duplicates(subset=[""编号","日期"],keep = 'first')
data3.append(data2).drop_duplicates(keep= 'first')

采用采用pandas中的drop_duplicates对数据去两次重,一次将重复数据全部去除(keep=False)记为data1,另一次将重复数据保留一个(keep='first)记为data2;
求data1和data2的差集即可:data2.append(data1).drop_duplicates(keep=False)
data1 = a.drop_duplicates(subset=["编号","日期"]
data2 = a.drop_duplicates(subset=["编号","日期"],keep = False)
data2.append(data1).drop_duplicates(keep=False)