我想将 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>
成为Q10
和Q90
,分别。
最佳答案
使用__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
关于Python Pandas Lambda 行重命名匿名函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51265834/