基本思想:对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