取与panda具有相同值的行的平均值



我有一个.csv格式如下:

Year  Number
2001  5
2001  10
2003  15

我的目标是获取用户输入(年(,并使用python的panda获取同一年共享的所有数字的平均值。

例如,如果我选择了年份";2001";我应该得到7.5分。

我会获取输入数据,将其转换为"int";,然后相应地过滤您的数据帧,并从[‘Number’]列中获取平均值。

所以它看起来是这样的:

#Preparing the data
import pandas as pd
df=pd.DataFrame()
df['Year']=pd.Series([2001,2001,2003])
df['Number']=pd.Series([5,10,15])
#Take input year from user
x=input(prompt='Please enter a year number: ')
#Filter your df by the input from customer , then select 'Number' column and calculate the mean
df[df['Year']==int(x)]['Number'].mean()

我使用的是我的标准数据帧。

import pandas as pd, numpy as np
df = pd.DataFrame({'Service': np.arange(8),
'Ticket': np.random.rand(8),
'Year' : np.random.randint(2010,2013,8),
'Var_1': np.random.rand(8), # values column
'Var_1_View': 'temp temp temp temp temp temp temp temp'.split(), # header of values of column
'Var_2': np.arange(8), 
'Var_2_View': 'pres pres pres pres pres pres pres pres'.split(),
'Var_3': np.arange(8) * 2,
'Var_3_View': 'shift shift shift shift shift shift shift shift'.split(),
'D': np.arange(8) * 5,
'Mess_3': np.random.rand(8),
'Mess_3_View': 'id id id id id id id id'.split(),
'E': np.arange(8)})
df_extract=df.groupby('Year').mean()
df_extract.loc[int(input('Please insert Year...'))]

a = df[df['Year'].eq('Year of interest')].mean()
print(f"{a.to_string()}")

如果你使用这种方法,它会打印出答案,但也会给你一个错误。你可以忽略这个:

warnings.simplefilter(action='ignore', category=FutureWarning)

显然不是一个永久性的解决方案。

相关内容

  • 没有找到相关文章

最新更新