I don't think there is any single way to tell a fish - just some ways that are more reliable than others.
Yes, lots of statistics can identify fishy play (really high VPIP, lots of limping etc.) but so can HOW they act - sometimes even more so than what the action itself is.
Take a "simple" action like "open-raising" - are they consistent with what appears to be a method (doesn't matter if it is 3X raise, 3X + 1X per limper etc, but are they sticking to it most of the time?). Lack of a method may indicate a fishier player.
Another action is table chatter. Are they talkative "consistently" or not? A fish may only become chatty when they have a hand or vice-versa. Even regs are sometimes guilty of this, but pros like Tony G are capable of table chatter with a monster hand as well as complete air.
Similarly, HOW and WHAT are the complaints/chatter about? A bit frustrated at a suckout straight hitting the River for the opponent? Perhaps legitimate? Complaining that the AK they limped into a multiway pot with lost to an Ace-rag Flush...maybe they are a fish (most players wouldn't slowplay AK this way or at very least not limp into a multiway pot like this; with decent effective stacks, they should be raising and isolating).
Likewise, Isolating! Lots of fish don't isolate as much as they should. A good player knows that hands with less
equity can still outdraw you, if you let them in too cheaply by not raising earlier on.
There are a ton more "fishy clues" to watch out for, but these are a few highlight ones I think.