You can use "group by" in views to group data by a field. When you start writing css for it, or even use accordion. You need to wrap the rows into a container. This can be achieved by creating a template file(views-view-unformatted--my-view.tpl.php) and changing it accordingly.
Source code viewer
<!-- This is the group title. --> <h3><?php print $title; ?></h3> <?php endif; ?> <!-- Add your wrapper element. --> <div class="group-wrapper"> <?php foreach ($rows as $id => $row): ?> <div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .'"'; } ?>> <?php print $row; ?> </div> <?php endforeach; ?> <!-- Close your wrapper element. --> </div>Programming Language: PHP