首页 > 解决方案 > Python Pandas Lambda行重命名匿名函数?

问题描述

我想将带有 Q10 和 Q90 的分位数函数重命名为 pandas 结果。

import numpy as np
import pandas as pd
quantile10 = lambda myDf :  myDf.quantile(q=0.10)
quantile90 = lambda myDf :  myDf.quantile(q=0.90)
df.agg([min,max, np.median, np.std, pd.DataFrame.mean, quantile10, quantile90])

在此处输入图像描述

我希望每个分别<lambda>Q10Q90

标签: pythonpandasrename

解决方案


使用__name__

df = pd.DataFrame({'B':[4,5,4,5,5,4],
                   'C':[7,8,9,4,2,3],
                   'D':[1,3,5,7,1,0],
                   'E':[5,3,6,9,2,4]})

quantile10 = lambda myDf :  myDf.quantile(q=0.10)
quantile10.__name__ = 'Q10'
quantile90 = lambda myDf :  myDf.quantile(q=0.90)
quantile90.__name__ = 'Q90'

df = df.agg([min,max, np.median, np.std, pd.DataFrame.mean, quantile10, quantile90])

print (df)

               B         C         D         E
min     4.000000  2.000000  0.000000  2.000000
max     5.000000  9.000000  7.000000  9.000000
median  4.500000  5.500000  2.000000  4.500000
std     0.547723  2.880972  2.714160  2.483277
mean    4.500000  5.500000  2.833333  4.833333
Q10     4.000000  2.500000  0.500000  2.500000
Q90     5.000000  8.500000  6.000000  7.500000

推荐阅读