Using a fork, mash the beans in a medium bowl until they are mushy but still have some whole bean pieces throughout.
Mix the breadcrumbs, grated onion, chili powder, egg and some salt and pepper into the beans. Add a splash of water if the mixture looks dry. Set aside for 5 minutes.
Divide the bean mixture into 4 equal balls and form into patties. Preheat a large cast-iron skillet over medium-high heat and add a few tablespoons of canola oil.
Cook the burgers until browned, 4 to 5 minutes on each side. Add a slice of Swiss cheese to the top of each burger. Invert a second skillet on top of the first skillet and continue cooking until the cheese is melted, about 2 minutes.
Combine the mayonnaise and a few shakes of hot sauce in a small bowl. Serve the burgers on the buns with lettuce, tomatoes and the spicy mayonnaise.