pandas getattr(df,“mean”)不像df.mean()那样工作

时间:2017-12-31 02:11:23

标签: python pandas numpy dynamic

当我使用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"))来尝试获取平均值,但无法确定哪个属性(如果有)将获得浮动平均值。

1 个答案:

答案 0 :(得分:4)

由于getattr返回的atttribute是可调用的,请尝试:

print(getattr(s, "mean")())