This "banding" is caused by the primary light source in the image varying in intensity over time, and by the (electronic) rolling shutter in the camera converting this variation over time into variation in illumination across the image.
This changing illumination affects the image multiplicatively — i.e. the brightness of a pixel in the image, on each RGB spectral channel, is proportional to the product of the reflectance of the surface illuminating the pixel times the brightness of the light falling on the surface — and thus, in principle, could be cancelled out in Photoshop (or other similar software; I used GIMP 2.10) by a layer containing just the banding pattern, applied on top of the image layer in "divide" mode.
Such a layer could be obtained from any section of the image that happens to feature a flat white surface illuminated by the flickering light — such as the white ceiling on the top of your photo, which conveniently spans the entire width of the image with only a single narrow line interrupting it. In principle, all we need to do is:
- copy a narrow horizontal strip of the ceiling into a new layer,
- edit out the interrupting line,
- scale the layer first down to 1 pixel high (to average the pixels in each vertical column together) and then up to the height of the whole image,
- adjust the color levels of the layer so that the maximum RGB values are exactly 255,
- optionally apply a bit of horizontal blur to smooth out any noise and rounding errors, and
- set the layer mode to "divide".
If you do all that to your photo above, you'll obtain something like this:

Left: banding mask extracted from ceiling; right: image after division by banding mask layer on the left. Click images for full size.
You can see, however, that some of the banding still remains. One reason for this is that the banding mask I used is clearly not a perfect reconstruction of the light intensity cycle, and could use some manual editing e.g. to remove the brightness variation due to the varying distance of the lights from the strip of ceiling I used.
However, a bigger issue is that there are clearly multiple light sources in your photo, and only some of them flicker. Which means the some parts of your image (like the ceiling close to the fluorescent lights and also the floor tiles) show stronger banding than other parts (like the subject in the foreground, and also the ceiling further away from the lights).
What we can try to do is adjust the color levels of the banding layer again, this time raising the black point until the parts that look most heavily and annoyingly banded become more or less uniform. For this attempt, I mostly tried to get the floor tiles to look good; I decided that the ceiling was basically a lost cause, especially near the lights, and the person in the foreground actually has enough natural variation in the light angle and intensity that the banding isn't particularly noticeable there.
This does cause some parts of the resulting image, like the top of the ceiling, to now show reverse banding, but the overall result isn't too bad:

One way to try to improve it further would be to add a layer mask to the banding layer and edit it manually to try to adjust the strength of the banding correction in different parts of the photo. Unfortunately it's kind of hard to do that smoothly without making the image look splotchy. Probably the best way is to just select distinct areas of the image separated by high-contrast boundaries and adjust the mask uniformly in each area. Trying to e.g. match the light intensity gradient in the ceiling this way is most likely hopeless.
You could also try to just make several versions of the image with different amounts of banding correction and manually blend them together, but that's likely to have similar issues, although perhaps slightly less risk of major over- or undercorrection.
Also, I only realized while typing this answer that I really should've started the whole process by first converting the photo into a linear color space, i.e. one with gamma = 1.0. I didn't, though, which means that even if there was only one light source in the image and even if I had a perfect reconstruction of its brightness variation, the division still wouldn't cancel it out exactly. But I suspect that in practice this is a relatively minor issue compared to all the other sources of error and non-uniformity noted above.