fork download
  1. import random
  2. import pandas as pd
  3.  
  4. # create a function to generate random set of 0-999 with len of 3 - 20
  5. f = lambda: set(random.randrange(1000) for i in range(random.randrange(3, 21)))
  6.  
  7. # create a DataFrame of 10000 rows with random sets
  8. df = pd.DataFrame({'sets': [f() for i in range(10000)]})
  9.  
  10. # Create a column of repr(set) and retrieve the order in str
  11. df['reprs'] = df['sets'].apply(repr).str.strip('{}')
  12.  
  13. # Create a column of list(set) and retrieve the order in str
  14. df['lists'] = df['sets'].apply(list).astype(str).str.strip('[]')
  15.  
  16. # Create a comparison column
  17. df['match'] = df['reprs'].eq(df['lists'])
  18.  
  19. # Take a look of the reprs and lists...
  20. print(df[['reprs', 'lists']])
  21.  
  22. # Summarize
  23. summary = df.groupby('match')['sets'].count()
  24. print(summary)
  25.  
  26.  
  27.  
Success #stdin #stdout 0.96s 76468KB
stdin
Standard input is empty
stdout
                                                  reprs                                              lists
0     385, 737, 36, 326, 329, 234, 368, 465, 188, 91...  385, 737, 36, 326, 329, 234, 368, 465, 188, 91...
1     258, 393, 651, 659, 413, 683, 433, 55, 955, 83...  258, 393, 651, 659, 413, 683, 433, 55, 955, 83...
2                               129, 297, 463, 181, 380                            129, 297, 463, 181, 380
3           194, 356, 551, 877, 628, 342, 311, 635, 989        194, 356, 551, 877, 628, 342, 311, 635, 989
4       864, 485, 325, 878, 48, 561, 978, 848, 251, 445    864, 485, 325, 878, 48, 561, 978, 848, 251, 445
5     768, 960, 290, 452, 837, 874, 714, 718, 143, 4...  768, 960, 290, 452, 837, 874, 714, 718, 143, 4...
6     0, 865, 928, 576, 864, 962, 262, 723, 884, 693...  0, 865, 928, 576, 864, 962, 262, 723, 884, 693...
7     292, 676, 744, 105, 234, 525, 911, 879, 340, 8...  292, 676, 744, 105, 234, 525, 911, 879, 340, 8...
8                       6, 457, 909, 398, 115, 659, 759                    6, 457, 909, 398, 115, 659, 759
9                     864, 449, 707, 821, 247, 440, 445                  864, 449, 707, 821, 247, 440, 445
10    644, 645, 262, 909, 14, 272, 538, 284, 46, 689...  644, 645, 262, 909, 14, 272, 538, 284, 46, 689...
11                288, 588, 302, 750, 880, 304, 81, 507              288, 588, 302, 750, 880, 304, 81, 507
12     677, 581, 170, 461, 179, 438, 343, 666, 158, 415   677, 581, 170, 461, 179, 438, 343, 666, 158, 415
13           896, 267, 397, 46, 242, 534, 793, 411, 956         896, 267, 397, 46, 242, 534, 793, 411, 956
14    805, 677, 521, 108, 559, 339, 660, 851, 663, 8...  805, 677, 521, 108, 559, 339, 660, 851, 663, 8...
15    161, 803, 4, 69, 870, 327, 579, 454, 234, 970,...  161, 803, 4, 69, 870, 327, 579, 454, 234, 970,...
16                         737, 226, 739, 727, 571, 253                       737, 226, 739, 727, 571, 253
17    544, 320, 164, 420, 804, 265, 780, 973, 537, 7...  544, 320, 164, 420, 804, 265, 780, 973, 537, 7...
18    65, 802, 993, 484, 429, 977, 209, 342, 375, 18...  65, 802, 993, 484, 429, 977, 209, 342, 375, 18...
19    641, 932, 36, 839, 104, 137, 779, 208, 757, 98...  641, 932, 36, 839, 104, 137, 779, 208, 757, 98...
20    931, 744, 522, 907, 748, 554, 304, 466, 57, 28...  931, 744, 522, 907, 748, 554, 304, 466, 57, 28...
21                         516, 333, 507, 857, 443, 671                       516, 333, 507, 857, 443, 671
22    762, 966, 971, 715, 752, 275, 148, 117, 692, 6...  762, 966, 971, 715, 752, 275, 148, 117, 692, 6...
23             5, 12, 879, 947, 725, 822, 697, 507, 158           5, 12, 879, 947, 725, 822, 697, 507, 158
24    417, 580, 392, 328, 524, 397, 590, 910, 112, 2...  417, 580, 392, 328, 524, 397, 590, 910, 112, 2...
25    897, 660, 795, 156, 668, 545, 39, 303, 434, 18...  897, 660, 795, 156, 668, 545, 39, 303, 434, 18...
26    96, 287, 326, 495, 15, 145, 946, 913, 154, 765...  96, 287, 326, 495, 15, 145, 946, 913, 154, 765...
27    64, 483, 444, 249, 579, 775, 441, 107, 368, 17...  64, 483, 444, 249, 579, 775, 441, 107, 368, 17...
28                                   576, 753, 626, 165                                 576, 753, 626, 165
29    256, 642, 264, 655, 914, 920, 538, 925, 416, 4...  256, 642, 264, 655, 914, 920, 538, 925, 416, 4...
...                                                 ...                                                ...
9970               705, 314, 173, 14, 565, 918, 87, 250               705, 314, 173, 14, 565, 918, 87, 250
9971  584, 201, 328, 968, 489, 190, 495, 882, 691, 5...  584, 201, 328, 968, 489, 190, 495, 882, 691, 5...
9972  159, 64, 454, 614, 872, 455, 588, 465, 148, 98...  159, 64, 454, 614, 872, 455, 588, 465, 148, 98...
9973         417, 4, 9, 75, 685, 819, 243, 598, 795, 31         417, 4, 9, 75, 685, 819, 243, 598, 795, 31
9974                         961, 937, 716, 13, 910, 91                         961, 937, 716, 13, 910, 91
9975                                       322, 226, 70                                       322, 226, 70
9976  128, 33, 546, 9, 714, 430, 239, 627, 756, 980,...  128, 33, 546, 9, 714, 430, 239, 627, 756, 980,...
9977  226, 963, 996, 422, 903, 8, 425, 521, 427, 678...  226, 963, 996, 422, 903, 8, 425, 521, 427, 678...
9978  923, 487, 552, 682, 783, 848, 501, 22, 599, 31...  923, 487, 552, 682, 783, 848, 501, 22, 599, 31...
9979  896, 770, 255, 420, 933, 934, 520, 648, 712, 2...  896, 770, 255, 420, 933, 934, 520, 648, 712, 2...
9980  321, 2, 643, 996, 932, 358, 194, 186, 603, 260...  321, 2, 643, 996, 932, 358, 194, 186, 603, 260...
9981                                      972, 477, 958                                      972, 477, 958
9982    801, 486, 552, 73, 652, 685, 111, 245, 731, 575    801, 486, 552, 73, 652, 685, 111, 245, 731, 575
9983  992, 193, 583, 670, 14, 238, 336, 978, 211, 24...  992, 193, 583, 670, 14, 238, 336, 978, 211, 24...
9984  257, 931, 171, 811, 43, 178, 185, 196, 453, 96...  257, 931, 171, 811, 43, 178, 185, 196, 453, 96...
9985  802, 322, 868, 741, 263, 41, 779, 718, 561, 30...  802, 322, 868, 741, 263, 41, 779, 718, 561, 30...
9986             965, 678, 935, 398, 338, 885, 854, 822             965, 678, 935, 398, 338, 885, 854, 822
9987              576, 99, 102, 650, 205, 976, 916, 990              576, 99, 102, 650, 205, 976, 916, 990
9988                        969, 524, 749, 884, 438, 58                        969, 524, 749, 884, 438, 58
9989   833, 298, 204, 812, 306, 599, 312, 505, 189, 958   833, 298, 204, 812, 306, 599, 312, 505, 189, 958
9990                             11, 812, 238, 303, 431                             11, 812, 238, 303, 431
9991                   700, 72, 872, 363, 629, 920, 508                   700, 72, 872, 363, 629, 920, 508
9992  448, 322, 3, 541, 294, 904, 328, 13, 590, 399,...  448, 322, 3, 541, 294, 904, 328, 13, 590, 399,...
9993         832, 898, 484, 433, 211, 695, 474, 795, 93         832, 898, 484, 433, 211, 695, 474, 795, 93
9994  576, 191, 996, 324, 73, 874, 511, 268, 397, 58...  576, 191, 996, 324, 73, 874, 511, 268, 397, 58...
9995                       100, 260, 901, 399, 532, 766                       100, 260, 901, 399, 532, 766
9996  161, 194, 828, 263, 10, 972, 814, 911, 146, 98...  161, 194, 828, 263, 10, 972, 814, 911, 146, 98...
9997  962, 451, 164, 740, 272, 81, 784, 432, 18, 509...  962, 451, 164, 740, 272, 81, 784, 432, 18, 509...
9998  0, 770, 547, 773, 133, 935, 264, 837, 902, 303...  0, 770, 547, 773, 133, 935, 264, 837, 902, 303...
9999  673, 132, 557, 877, 621, 656, 337, 274, 181, 1...  673, 132, 557, 877, 621, 656, 337, 274, 181, 1...

[10000 rows x 2 columns]
match
True    10000
Name: sets, dtype: int64