Nat
Nat

Reputation: 345

estimate the average value group by a specific column using python

I have an ascii file containing 2 columns as following;

id value
1  15.1
1  12.1 
1  13.5
2  12.4
2  12.5
3  10.1
3  10.2
3  10.5
4  15.1
4  11.2
4  11.5
4  11.7
5  12.5
5  12.2

I want to estimate the average value of column "value" for each id (i.e. group by id)

Is it possible to do that in python using numpy or pandas ?

Upvotes: 0

Views: 78

Answers (2)

MrNobody33
MrNobody33

Reputation: 6483

If you don't know how to read the file, there are several methods as you can see here that you could use, so you can try one of them, e.g. pd.read_csv().

Once you have read the file, you could try this using pandas functions as pd.DataFrame.groupby and pd.Series.mean():

df.groupby('id').mean()

#if df['id'] is the index, try this:
#df.reset_index().groupby('id').mean()

Output:

        value
id           
1   13.566667
2   12.450000
3   10.266667
4   12.375000
5   12.350000

Upvotes: 1

Vivek Srivastava
Vivek Srivastava

Reputation: 207

import pandas as pd
filename = "data.txt"
df = pd.read_fwf(filename)
df.groupby(['id']).mean()

Output

        value
id           
1   13.566667
2   12.450000
3   10.266667
4   12.375000
5   12.350000

Upvotes: 0

Related Questions