簡體   English   中英

編寫一個新的 function 以 dataframe df 作為參數並返回一個 pandas 系列總結 dataframe

[英]write a new function that takes in a dataframe df as an argument and returns a pandas series summarizing that dataframe

在下面編寫一個名為summary_stats的新 function,它接受 dataframe df作為參數並返回一個 pandas 系列總結 dataframe。pandas 系列應該具有以下索引和值對:

mean_x :數據幀的x列的平均值, df['x'].mean()

mean_y :數據幀的y列的平均值

var_x :數據框的x列的方差

var_y :數據幀的y列的方差

corr_xy :數據幀的xy列的相關性(提示:您可以在 x 上調用 pandas corr function 並將 y 作為參數傳入)。

我現在的代碼是:

ans = sns.load_dataset("anscombe")
def summary_stats (df):
    mean_x = df['x'].mean()
    mean_y = df['y'].mean()
    var_x = df['x'].var()
    Vay_y = df['y'].var()
    corr_xy = df['x'].corr(df['y'])

我對如何定義新的 function 感到困惑

你的 function 應該已經完成了,你只需要添加一個return語句。 如果您想要 pandas 系列,那么您還需要指定它:

df = sns.load_dataset("anscombe")
def get_stats(df, col1, col2):

    return pd.Series([df[col1].mean(), df[col2].mean(), df[col1].var(), df[col2].var()])

Out:
0     9.000000
1     7.500682
2    10.232558
3     3.837388
dtype: float64

相反,如果您希望它作為帶有列名稱的 pandas DataFrame:

def get_stats(df, col1, col2):

    return pd.DataFrame({'mean':[df[col1].mean(),df[col2].mean()],
                         'var':[df[col1].var(),df[col2].var()]},
                       index=[col1,col2])


print(get_stats(df, 'x','y'))

Out:
       mean        var
x  9.000000  10.232558
y  7.500682   3.837388


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM