【问题标题】:difference between df.loc[:, columns] and df.loc[:][columns]df.loc[:, columns] 和 df.loc[:][columns] 的区别
【发布时间】:2021-09-27 19:57:38
【问题描述】:

我想以这种方式使用MinMaxScaler 规范化熊猫数据框的某些列:

scaler = MinMaxScaler()
numericals = ["TX_TIME_SECONDS",'TX_Amount']

当我这样做时:

df.loc[:][numericals] = scaler.fit_transform(df.loc[:][numericals])

它没有就地完成,df 没有改变;

然而,当我这样做时:

df.loc[:, numericals] = scaler.fit_transform(df.loc[:][numericals])

df的数值列原地改变,

那么,df.loc[:, ~]df.loc[:][~]有什么区别

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    df.loc[:][numericals] 选择所有行,然后选择返回对象的列“TX_TIME_SECONDS”和“TX_Amount”,并为其分配一些值。问题是,返回的对象可能是一个副本,所以这可能不会改变实际的 DataFrame。

    进行此分配的正确方法是使用df.loc[:, numericals],因为使用.loc,您可以保证修改原始DataFrame。

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 2011-11-22
      • 2022-11-21
      • 1970-01-01
      • 2018-10-23
      • 2020-11-08
      • 1970-01-01
      相关资源
      最近更新 更多