当我使用getattr()
动态访问pandas数据帧或系列的平均值时,它会返回一个Series.mean对象。但是,当我使用df.mean()
访问均值时,它会返回一个浮点数。
为什么getattr()
没有返回与普通方法相同的东西?
最小可重现代码:
import pandas as pd
import numpy as np
s = pd.Series(np.random.randn(5))
print(getattr(s, "mean"))
>>> <bound method Series.mean of
>>> 0 1.158042
>>> 1 -0.586821
>>> 2 -1.976764
>>> 3 1.722072
>>> 4 1.129570
print(s.mean())
>>> dtype: float64>
>>> 0.28921963496328584
我已经使用dir(getattr(s, "mean"))
来尝试获取平均值,但无法确定哪个属性(如果有)将获得浮动平均值。
答案 0 :(得分:4)
由于getattr返回的atttribute是可调用的,请尝试:
print(getattr(s, "mean")())