我編寫了一個遞歸函數(shù)來增強 pandas.DataFrame.describe。它將峰度和偏斜添加為行。它還創(chuàng)建了第二個描述表來轉(zhuǎn)置第一個描述表,以便您獲得匯總統(tǒng)計數(shù)據(jù)的摘要。它工作得很好,只是我不喜歡編寫具有多個出口的函數(shù)。我嘗試用一個 return 語句編寫它(請參閱注釋掉的部分),但它會在一個表中創(chuàng)建兩個轉(zhuǎn)置表。正確,但太多了。def get_better_desc(df, recursions: int = 1): '''Adds kurtosis and skew to pandas.DataFrame.describe output. And, creates second transposed version of this table called on itself for summary stats of summary stats. Parameters: df: pandas.DataFrame, or Series but its super_desc isn't so meaningful. recursions: integer number of times to apply recursively to create super_desc. Default value of 1 is all that is necessary. Returns: better_desc: pandas.Dataframe (or Series) with kurtosis and skew added. super_desc: pandas.DataFrame (or Series) of better_desc transposed and made into a better_desc itself.''' kurt = df.kurtosis() kurt.name = 'kurt' skew = df.skew() skew.name = 'skew' better_desc = df.describe().append([kurt, skew]) if recursions > 0: super_desc = get_better_desc(better_desc.transpose(), recursions=(recursions - 1)) return better_desc, super_desc else: return better_desc# if recursions > 0:# super_desc = get_better_desc(better_desc.transpose(),# recursions=(recursions - 1))# else:# super_desc = better_desc # return better_desc, super_desc
1 回答

陪伴而非守候
TA貢獻1757條經(jīng)驗 獲得超8個贊
該函數(shù)返回兩個數(shù)據(jù)幀,如果您只將其分配給一個變量,而不是忽略第二個返回值,它會將兩者分配給該變量。在遞歸調(diào)用中,您只需指定第一個表,即 returns 列表中的第一個元素[0]。
...
if recursions > 0:
super_desc = get_better_desc(better_desc.transpose(),
recursions=(recursions - 1))[0] #<=
else:
super_desc = better_desc
return better_desc, super_desc
添加回答
舉報
0/150
提交
取消