I have a dataframe called df which like this but it is actually [9147 rows x 3 columns]
indexID RngUni[m] PowUni[dB]
157203 1.292283 132
157201 1.271878 132
157016 1.285481 134
157404 1.305886 136
157500 1.353496 136
157524 1.251474 136
157227 1.292283 132
157543 1.339893 136
157903 1.353496 138
156928 1.299084 134
157373 1.299084 136
156937 1.414709 134
157461 1.353496 136
157718 1.360297 138
157815 1.326290 138
157806 1.271878 134
156899 1.360298 134
157486 1.414709 138
157628 1.271878 136
157405 1.299084 134
157244 1.299084 134
157522 1.258275 136
157515 1.367099 138
157086 1.305886 136
157602 1.251474 134
157131 1.265077 132
157170 1.380702 138
156904 1.360297 134
157209 1.401106 138
157018 1.265077 134
What I am trying to do is to pick certain values of the data in the table.
df.plot(x = 'RngUni[m]', y = 'PowUni[dB]', kind = 'scatter') gives:
Assuming that the main group is the area where most of the data points cluster, what I need to do is to pick 80% of the points that are in the main group and 20% of points that are outside the main group.
I need the indexID of all the points outputted as a list. How can I do this?
An example of the clustering required. What I would like to do is to pick 80% of the points in the circle and 20% of the points outside the circle.

