我正在学习Pandas和Numpy,目前正在学习本教程的this section。我完全不熟悉Python,所以这可能是一个基本的初学者问题。
给出此数据框:
df = pd.DataFrame(np.random.randn(4, 3), columns=['A', 'B', 'C'],
index=pd.date_range('1/1/2000', periods=4))
df.iloc[3:7] = np.nan
我无法解释df.agg
的以下结果之间的区别:
电话1:
df.agg(sum)
#Result:
A NaN
B NaN
C NaN
dtype: float64
电话2:
df.agg('sum')
#Result:
A -1.776752
B -2.070156
C -0.124162
dtype: float64
df.agg('sum')
的结果与df.agg(np.sum)
或df.sum()
的结果相同。我期望df.agg('sum')
会产生与df.agg(sum)
相同的结果。
熊猫是否具有特殊的逻辑来解析这些功能,以使其更喜欢np.sum
(或运行df.sum
)而不是内置的sum
?
答案 0 :(得分:2)
在链接到的文档中,内容为:
您还可以将命名方法作为字符串传递。
因此,字符串在DataFrame(或Series(如果在Series上调用library(arsenal)
library(data.table)
# dummy data
set.seed(1)
data = c(LETTERS, NA)
dt = data.table(Flag_A=sample(data), Flag_B = sample(data), C=sample(data), D=sample(data), Flag_E=sample(data))
dt = rbind(NA, dt)
# All-NA/Any-NA check
columns_to_check = names(dt)[grep('Flag', names(dt))]
dt[, AllNA:=allNA(.SD), by=1:nrow(dt), .SDcols = columns_to_check]
dt[, AnyNA:=anyNA(.SD), by=1:nrow(dt), .SDcols = columns_to_check]
)上作为方法名称解析。