我有一個 .csv 格式如下:
Year Number
2001 5
2001 10
2003 15
我的目標是獲取用戶輸入(年份)并使用 python 的 pandas 獲取同一年份的所有數字的平均值。
例如,如果我選擇年份“2001”,我應該得到 7.5。
uj5u.com熱心網友回復:
我會獲取輸入資料,將其轉換為“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()
uj5u.com熱心網友回復:
我正在使用我的標準資料框。
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...'))]
uj5u.com熱心網友回復:
a = df[df['Year'].eq('Year of interest')].mean()
print(f"{a.to_string()}")
如果你使用這種方法,它會列印出答案,但也會給你一個錯誤。您可以通過以下方式忽略它:
warnings.simplefilter(action='ignore', category=FutureWarning)
顯然不是永久修復。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/455918.html
