索引特定列规范化

时间:2016-02-26 06:41:47

标签: python pandas

我有200多列的时间序列数据。我目前正在将每列标准化为[0,1]范围内的df.apply(lambda x: (x-x.min())/(x.max()-x.min()))。但这还不够。我还想让每个列在其自己的范围内进行标准化(例如,第1列:[0,1],第2列:[1,2],第3列:[2,3]等。我怎样才能做到这一点?有没有办法让lambda函数获取它被调用的列的索引(我在文档中没有找到这样的东西)?

1 个答案:

答案 0 :(得分:0)

为什么不这样做呢?

df = df.apply(lambda x: (x-x.min())/(x.max()-x.min()))
for ix, col in enumerate(df.columns.values):
    df[col] = df[col]+ix

另一条路线并不是非常漂亮但功能同样如此:

df = df.apply(lambda x: (x-x.min())/(x.max()-x.min()))
df += pd.DataFrame([range(len(df.columns.values))]*len(df.index),columns=df.columns.values)