Which Really Useful Boxes stack together?
"Really Useful Boxes" are great. They come in lots of sizes and are used everywhere. The sales literature gives examples of what you can store in them.But which sizes stack exactly on top of each other?
The list below shows the boxes that stack, grouped by those with the most common size.
(Scroll down for the Python script that was used to group the data).
Length Width (mm) Box Name
----------------------------------------------
395 255 4 litre Really Useful Box (ream of A4)
395 255 9 litre Really Useful Box (ream of A4)
395 255 9 litre XL Really Useful Box (7" small)
395 255 14 litre open front Really Useful Box (shoes)
395 255 19 litre Really Useful Box (A4 paper)
395 255 19 litre XL Really Useful Box (LP small)
395 255 25 litre Really Useful Box (12" x 12")
----------------------------------------------
710 440 20 litre Really Useful Box (board games)
710 440 33 litre Really Useful Box
710 440 50 litre Really Useful Box
710 440 64 litre Really Useful Box
710 440 64 litre open front Really Useful Box
710 440 84 litre Really Useful Box
----------------------------------------------
340 200 2.5 litre Really Useful Box
340 200 5 litre Really Useful Box
340 200 5 litre XL Really Useful Box
340 200 8 litre open front Really Useful Box
----------------------------------------------
480 390 18 litre Really Useful Box
480 390 18 litre XL Really Useful Box (7" medium)
480 390 35 litre Really Useful Box
480 390 35 litre XL Really Useful Box (LP medium)
----------------------------------------------
600 400 24.5 litre Really Useful Box
600 400 48 litre Really Useful Box
600 400 48 litre XL Really Useful Box
----------------------------------------------
465 270 6 litre Really Useful Box
465 270 12 litre Really Useful Box
465 270 24 litre Really Useful Box
----------------------------------------------
The following boxes only have one 'partner in size':
Length Width (mm)                     Box Name
----------------------------------------------
    090   065    0.07 litre Really Useful Box
    090   065    0.14 litre Really Useful Box
----------------------------------------------
    120   085    0.2 litre Really Useful Box
    120   085    0.3 litre Really Useful Box
----------------------------------------------
    155   100    0.35 litre Really Useful Box
    155   100    0.7 litre Really Useful Box
----------------------------------------------
    195   135    0.75 litre Really Useful Box
    195   135    1.6 litre Really Useful Box
----------------------------------------------
    220   100    0.55 litre Really Useful Box
    220   100    0.9 litre Really Useful Box
----------------------------------------------
    245   180    1.75 litre Really Useful Box
    245   180    3 litre Really Useful Box
----------------------------------------------
    355   100    0.8 litre Really Useful Box
    355   100    1.5 litre Really Useful Box
----------------------------------------------
    450   350   21 litre Really Useful Box
    450   350   21 litre XL Really Useful Box
----------------------------------------------
    456   356   11 litre Really Useful Box
    455   356   11 litre XL Really Useful Box
----------------------------------------------
    810   620   70 litre Really Useful Box
    810   620  145 litre Really Useful Box
----------------------------------------------
The following boxes don't stack exactly with any other sized box.
    180   135    1.7 litre folding Really Useful Box
    240   130    2.1 litre Really Useful Box
    430   180    6.5 litre Really Useful Box
    400   350    7 litre Really Useful Box
    520   340   10 litre Really Useful Box
    820   255   22 litre Really Useful Box
    470   342   32 litre folding Really Useful Box
    485   390   35 litre folding Really Useful Box
    520   440   42 litre Really Useful Box
    390   570   45 litre folding Really Useful Box
   1201   270   77 litre Really Useful Box
The Python Script
This section is intended for those interested in how the data was prepared.The data comes from the table here, and was copied-and-pasted into a text file. The top line was edited to make a tab-separated header row.
The python script was written as an exercise in using Pandas Dataframes. The goal was to read the file, parse, sort, and filter, then group the boxes on external length and width. Although this could have been done manually on this dataset (59 rows), the manual approach does not scale to larger datasets.
Here is the script.
#!/usr/bin/env python
'''
Parse the sizes of ReallyUsefulBoxes and group them by external dimension.
'''
import pandas as pd
filename = 'ReallyUsefulBoxesRaw.txt'
list_data = pd.read_csv(filename, sep='\t')
# force a rename of the columns
list_data.columns = ['BoxName','Extl','Intl','Wt']
# ---extract external dimension data into 3 new DataFrame columns:
extList = list_data['Extl'].str.split(' x ')
list_data['Length'] = [row[0] for row in extList]
list_data['Width'] = [row[1] for row in extList]
list_data['Height'] = [row[2] for row in extList]
# Just use the columns of interest
trimmed_data = list_data[['Length','Width','BoxName']]
grouped_data = trimmed_data.groupby(['Length','Width'])
#print grouped_data
# Print out each group: these are the boxes that have the same width and
# height and therefore stack together.
for name, group in grouped_data:
print '\n------------',name,'------------'
print(group)
 
