Python 用于缩放数据帧中列的lambda函数返回:“0”';浮动';对象没有属性';最小值'&引用;

Python 用于缩放数据帧中列的lambda函数返回:“0”';浮动';对象没有属性';最小值'&引用;,python,pandas,Python,Pandas,我刚刚开始学习Python和机器学习,遇到了一个我自己或任何其他在线资源都无法解决的问题。 我正在尝试使用lambda函数按以下方式缩放pandas数据帧中的列: X['col1'] = X['col1'].apply(lambda x: (x - x.min()) / (x.max() - x.min())) 并获取以下错误消息: “float”对象没有属性“min” 我尝试将数据类型转换为整数,返回以下错误: “int”对象没有属性“min” 我相信我犯了一些非常基本的错误,希望任何人都能

我刚刚开始学习Python和机器学习,遇到了一个我自己或任何其他在线资源都无法解决的问题。 我正在尝试使用lambda函数按以下方式缩放pandas数据帧中的列:

X['col1'] = X['col1'].apply(lambda x: (x - x.min()) / (x.max() - x.min()))
并获取以下错误消息:

“float”对象没有属性“min”

我尝试将数据类型转换为整数,返回以下错误:

“int”对象没有属性“min”


我相信我犯了一些非常基本的错误,希望任何人都能给我指出正确的方向。

我认为没有必要在这里应用,因为存在更快的矢量化解决方案-将
x
更改为
x['col1']

X = pd.DataFrame({'col1': [100,10,1,20,10,-20,200]})
X['col2'] = (X['col1'] - X['col1'].min()) / (X['col1'].max() - X['col1'].min())
print (X)

   col1      col2
0   100  0.545455
1    10  0.136364
2     1  0.095455
3    20  0.181818
4    10  0.136364
5   -20  0.000000
6   200  1.000000
与评论中指出的@meW一样,另一个解决方案是使用:


您可以在
Scikit Learn
下尝试
MinMaxScaler
。Check刚试过,效果不错,谢谢。事实上,我试图实现lambda函数来验证我是否正确使用了MinMaxScaler。结果匹配up@DarioRaffaele-不客气!如果我的回答有帮助,别忘了。谢谢
from sklearn import preprocessing

min_max_scaler = preprocessing.MinMaxScaler()
X['col2'] = min_max_scaler.fit_transform(X[['col1']])
print (X)

   col1      col2
0   100  0.545455
1    10  0.136364
2     1  0.095455
3    20  0.181818
4    10  0.136364
5   -20  0.000000
6   200  1.000000