Should I keep Pokemon with high CP, Attack, or Weight?
Solution 1:
It depends on how far into the game you are. Up until level 24 or so usually you only care about CP and if the CP are similar then the movesets. Once you get into the medium to high 20's that is when things start to get more interesting.
Outside of just movesets and CP there are also IVs (Individual Variables) to keep track of. A Pokemon's IV determines its maximum CP, CP per level, and health. However as long as the IV difference isn't too large, I believe moveset takes priority over IVs because it is more than enough to make up for the CP/HP difference a lot of the times. Another reason why at this point in the game you care a lot more about IVs is because you have a lot more stardust and can finally justify spending them.
Think of good IV pokemon as a long term investment while high CP pokemon as short term. It's really important to balance out the two. And if you follow the moveset chart you are good to go. Keep in mind that movesets are random after evolving so if you find a pre-evolved pokemon you only want to look at CP/IV because IV's are the same after evolution. Weight/size do not matter at all compared to these other statistics.
Best movesets for each pokemon can be found here. IV calculator can be found here.
Solution 2:
Always CP if it is not the final evolution, otherwise abilities unless the CP gap is significant and you don't want to spend stardust to power it up.
It's currently unclear what, if any, influence the weight and size of a Pokemon has on its stats, so I would ignore that for now. If you are going to evolve the Pokemon then its abilities will change, so ignore those if it is not the final evolution. That means that when choosing which Pokemon to keep for evolving, you should only consider their CP.
It is a little more complicated on the final evolution, but it mostly depends on how much stardust and candy you want to spend on powering up. If you want a decent Pokemon to fight with but don't want to spend a lot of stardust and candy to power it up, then keep the highest CP. If you want the absolute best Pokemon, then keep the ones with the best abilities. You can always raise the CP by using stardust and candy, but you can never give a Pokemon better abilities.
Also keep in mind that as you level up, you will naturally run into Pokemon with higher CP, so there is little point in powering up something common like a Pidgy. It may be worth it if you get something rare though, especially if it has really good abilities. It'll depend on how much stardust you have, how long you think you will fight with it, etc.