【发布时间】:2016-06-09 20:49:22
【问题描述】:
我一直在对系列和数据框使用 pandas 应用方法,但我显然仍然缺少一些东西,因为我对我正在尝试执行的一个简单函数感到困惑。
这就是我正在做的:
def minmax(row):
return (row - row.min())/(row.max() - row.min())
row.apply(minmax)
但是,这会返回一个全零系列。例如,如果
row = pd.Series([0, 1, 2])
然后
minmax(row)
根据需要返回 [0.0, 0.5, 1.0]。但是,row.apply(minmax) 返回 [0,0,0]。
我相信这是因为系列是整数,整数除法返回 0。但是,我不明白,
- 为什么它与 minmax(row) 一起使用(不应该是一样的吗?),以及
- 如何在 apply 函数中正确地转换它以返回适当的浮点值(我尝试使用 .astype 来转换它,这给了我所有的 NaN...我也不明白)
- 如果将其应用于数据帧,作为 df.apply(minmax),它也可以按需要工作。 (添加编辑)
我怀疑我错过了应用程序如何工作的一些基本内容......或者是密集的。无论哪种方式,提前谢谢。
【问题讨论】:
-
您使用的是什么版本的熊猫?我无法复制这个。
-
啊...嗯,这给了我一些鼓励。另外,我刚刚补充说,将它应用到数据框就可以了。熊猫 0.18.0...