我有一个数据框(training_df
),每列有4列,每行包含约150行。我的功能如下:
def normalise(theMin, theMax, theVal):
if(theMin == theVal):
return 0
else if(theMax == theVal):
return 1
return (theVal - theMin) / (theMax - theMin)
现在,我想要做的是依次遍历我的数据帧的所有四列并遍历每列中的所有行以及行中的每个值(当然每行中只有一个单元格) )我想用normalise
函数返回的任何值替换它们。所以我通过查看本论坛中已经提出的问题来尝试这样的事情:
for column in training_df:
theMin = training_df[column].min()
theMax = training_df[column].max()
for i in training_df[[column]].iterrows():
training_df[[column[i]]] = normalise(theMin, theMax, i)
但是我得到了TypeError: string indices must be integers
我对Python和熊猫以及数据挖掘都很陌生,所以如果有人能够澄清这一点,我会非常感激它。提前谢谢。
答案 0 :(得分:2)
我会做什么..
df.apply(lambda x : (x-x.min())/(x.max()-x.min()))