Home > OS >  Counting means from each row
Counting means from each row

Time:02-08

I am using Jupyter notebook to get this data:

df = ascii.read ('http://www.astrouw.edu.pl/cgi-asas/asas_cgi_get_data?110545-5433.5,asas3')

colums 2-6 are magnitudes. I would like to remove min and max of each 5 possibilities in a row and count mean of remaining three magnitudes.

How would I do that? And how can I rename the columns?

CodePudding user response:

One approach is to transform your table into a pandas dataframe and then calculate the centered mean:

import pandas as pd
import numpy as np
import io
from io import StringIO
from astropy.io import ascii

df = ascii.read ('http://www.astrouw.edu.pl/cgi-asas/asas_cgi_get_data?110545-5433.5,asas3')
ascii.write(df,'values1.csv', format='csv', fast_writer=False) 

DF = pd.read_csv('values1.csv', sep=",")
DF_small = DF[['col2','col3','col4','col5','col6']]

DF_small['centered mean'] = DF_small.apply(lambda x: x.drop([x.idxmax(),x.idxmin()]).mean() , axis = 1)

as you can see, we dropped the max and min values. This returns

col2    col3    col4    col5    col6  centered mean
0    11.630  11.623  11.640  11.648  11.658      11.639333
1    11.552  11.541  11.592  11.627  11.629      11.590333
2    11.704  11.739  11.697  11.683  11.699      11.700000
3    11.688  11.693  11.718  11.752  11.728      11.713000
4    11.654  11.677  11.680  11.702  11.711      11.686333
..      ...     ...     ...     ...     ...            ...
626  11.613  11.564  11.631  11.632  11.613      11.619000
627  11.672  11.618  11.683  11.688  11.698      11.681000
628  11.654  11.614  11.670  11.672  11.663      11.662333
629  11.536  11.524  11.559  11.571  11.569      11.554667
630  11.647  11.641  11.660  11.664  11.673      11.657000

UPDATE:

If you want to keep all other columns:

DF['centered mean'] = DF[['col2','col3','col4','col5','col6']].apply(lambda x: x.drop([x.idxmax(),x.idxmin()]).mean() , axis = 1)

gives:

col1    col2    col3    col4    col5    col6   col7   col8   col9  \
0    3116.55170  11.630  11.623  11.640  11.648  11.658  0.054  0.054  0.057   
1    1885.76359  11.552  11.541  11.592  11.627  11.629  0.037  0.049  0.035   
2    1888.79953  11.704  11.739  11.697  11.683  11.699  0.044  0.064  0.045   
3    1899.81685  11.688  11.693  11.718  11.752  11.728  0.039  0.046  0.032   
4    1915.74475  11.654  11.677  11.680  11.702  11.711  0.038  0.054  0.037   
..          ...     ...     ...     ...     ...     ...    ...    ...    ...   
626  3385.79064  11.613  11.564  11.631  11.632  11.613  0.041  0.051  0.040   
627  3391.76317  11.672  11.618  11.683  11.688  11.698  0.035  0.048  0.032   
628  3448.69080  11.654  11.614  11.670  11.672  11.663  0.038  0.053  0.036   
629  3450.66562  11.536  11.524  11.559  11.571  11.569  0.047  0.068  0.041   
630  3452.79152  11.647  11.641  11.660  11.664  11.673  0.044  0.066  0.040   

     col10  col11 col12   col13  centered mean  
0    0.067  0.079     B   99788      11.639333  
1    0.042  0.054     A    2479      11.590333  
2    0.054  0.064     A    2974      11.700000  
3    0.039  0.049     A    3272      11.713000  
4    0.044  0.054     A    4974      11.686333  
..     ...    ...   ...     ...            ...  
626  0.045  0.052     A  126087      11.619000  
627  0.037  0.045     A  126876      11.681000  
628  0.042  0.049     A  134925      11.662333  
629  0.045  0.049     B  135255      11.554667  
630  0.048  0.054     A  135545      11.657000  

[631 rows x 14 columns]
  •  Tags:  
  • Related