28、panda去重操作

基本思想:对csv数据表进行筛选操作,取每一个主键A的的子健AA的开始Id和结束id的对应坐标点;

A	AA	Id	cX0	cY0	cX1	cY1	Flag
2	1	42	537	231	640	360	1
2	1	43	525	200	628	329	1
2	1	44	518	192	637	338	1
2	1	45	503	186	628	303	1
2	1	46	495	170	620	287	1
2	1	47	488	137	610	258	1
2	1	48	470	120	591	234	1
2	1	49	475	120	596	234	1
2	1	50	468	108	583	213	1
2	1	51	473	108	588	213	1
2	1	52	475	110	590	215	1
2	1	53	470	108	587	214	1
2	1	54	455	112	589	221	1
2	1	55	455	112	589	221	1
2	1	56	434	118	576	233	1
2	1	57	419	122	571	231	1
2	1	58	415	125	567	234	1
2	1	59	400	133	577	248	1
2	1	60	404	134	566	235	1
2	1	61	400	135	562	236	1
2	1	62	404	140	576	262	1
2	1	63	397	145	576	265	1
2	1	64	405	165	584	285	1
2	1	65	416	175	576	305	1
2	1	66	433	194	576	338	1
2	1	67	440	240	583	384	1
2	1	68	449	266	577	396	1
2	1	69	438	306	569	427	1
2	1	70	438	306	569	427	1
2	1	71	445	372	566	488	1
2	4	106	555	155	659	273	2
2	4	107	599	189	710	309	2
2	4	108	629	184	739	303	2
2	4	109	675	180	785	299	2
2	4	110	703	151	843	307	2
2	4	111	768	154	883	281	2
2	4	112	790	150	905	277	2
2	4	113	771	130	915	274	2
2	4	114	776	127	918	266	2
2	4	115	780	125	922	264	2
2	4	116	790	121	921	234	2
2	4	117	779	101	931	234	2
2	4	118	780	100	932	233	2
2	4	119	802	109	928	222	2
2	4	120	803	109	929	221	2
2	4	121	805	110	931	222	2
2	4	122	802	108	924	223	2
2	4	123	795	96	932	231	2
2	4	124	800	95	937	230	2
2	4	125	796	95	942	230	2
2	4	126	811	107	971	236	2
2	4	127	815	105	975	234	2
2	4	128	818	145	978	275	2
2	4	129	822	174	961	336	2
2	4	130	805	235	944	397	2
2	4	131	763	254	897	403	2
2	4	132	720	290	863	437	2
2	4	133	710	330	853	477	2
2	4	134	712	339	840	500	2
2	4	135	714	344	832	508	2
16	0	399	947	478	1045	545	1
16	0	400	947	478	1045	545	1
16	0	401	981	429	1074	487	1
16	0	402	996	407	1075	468	1
16	0	403	1025	405	1104	466	1
16	0	404	1018	389	1106	451	1
16	0	405	1022	379	1110	446	1
16	0	406	1030	380	1118	447	1
16	0	407	1043	386	1138	455	1
16	0	408	1044	375	1135	446	1
16	0	409	1045	375	1136	446	1
16	0	410	1020	369	1111	433	1
16	0	411	1018	365	1109	431	1
16	0	412	1015	365	1106	431	1
16	0	413	1009	364	1104	433	1
16	0	414	1006	365	1102	432	1
16	0	415	1005	365	1101	432	1
16	0	416	993	355	1093	424	1
16	0	417	991	351	1092	418	1
16	0	418	990	345	1091	412	1
16	0	419	995	333	1090	404	1
16	0	420	993	325	1091	393	1
16	0	421	995	320	1093	388	1
16	0	422	992	311	1085	373	1
16	0	423	992	311	1089	372	1
16	0	424	990	310	1087	371	1
16	0	425	973	284	1071	366	1
16	0	426	969	275	1067	359	1
16	0	427	975	275	1073	359	1
16	0	428	975	270	1070	353	1
16	0	429	975	270	1075	353	1
16	0	430	980	270	1080	353	1
16	0	431	982	265	1090	351	1
16	0	432	988	246	1089	336	1
16	0	433	995	225	1096	315	1
16	0	434	996	197	1100	306	1
16	0	435	1024	160	1110	275	1
16	0	436	1025	135	1111	250	1
16	0	437	990	123	1101	224	1
16	0	438	966	125	1082	216	1
10	1	315	631	387	681	458	1
10	1	316	625	385	675	456	1
10	1	317	621	372	673	441	1
10	1	318	619	372	669	441	1
10	1	319	625	370	675	439	1
10	1	320	621	375	677	444	1
10	1	321	621	376	679	447	1
10	1	322	620	375	678	446	1
10	1	323	623	373	680	447	1
10	1	324	620	371	680	444	1
10	1	325	615	370	675	443	1
10	1	326	616	368	677	443	1
10	1	327	617	362	679	439	1
10	1	328	615	360	677	437	1
10	1	329	607	360	668	442	1
10	1	330	607	360	666	441	1
10	1	331	605	360	664	441	1
10	1	332	607	365	669	444	1

code:

import regex as re
import glob
import pandas as pb

file_csv=glob.glob(r"C:\Users\python\*.csv")
dectection_data=None
for file in file_csv:
    if file.endswith(".csv") and re.search("rack",file,re.I):
           df = pb.read_csv(file,index_col=False)
           df=df[["A","AA","Id","Flag"]]
           startDf=df.drop_duplicates(["A","AA"],keep="first")
           endDf=df.drop_duplicates(["A","AA"],keep="last")
           dectection_data=pb.merge(startDf, endDf, how='left', on=["A","AA"])
           dectection_data=dectection_data[["Id_x", "Id_y" ,"Flag_x"]]

print( dectection_data )

筛选结果

    Id_x  Id_y  Flag_x
0     42    71       1
1    106   135       2
2    399   438       1
3    315   336       1
4    400   418       2
5    482   499       2
6    507   525       2
7    578   584       2
8    625   629       2
9    702   723       2
10   798   820       2
11  1252  1265       2
12  1438  1439       1
13  1439  1455       1
14  1496  1528       2
15  1592  1604       1
16  1633  1639       1
17  1644  1645       1
18  1659  1660       1
19  1659  1661       2
20  1676  1707       1
21  1721  1722       1
22  1753  1754       1

猜你喜欢

转载自blog.csdn.net/sxj731533730/article/details/107573327