首页 > 解决方案 > Pandas - 将选定的列分配回原始数据框

问题描述

这些是我的数据框的数据类型:

Out[172]: 
price                   float64
host_response_rate      float64
host_acceptance_rate    float64
host_is_superhost        object
host_listings_count     float64
zipcode                  object
property_type            object
room_type                object
accommodates              int64
bathrooms               float64
bedrooms                float64
beds                    float64
bed_type                 object
amenities                object
number_of_reviews         int64
review_scores_rating    float64
cancellation_policy      object
reviews_per_month       float64
city                     object
dtype: object

我想缩放所有数值,我使用以下代码:

pd.DataFrame(scaler.fit_transform(df.select_dtypes("float64").to_numpy()), columns = df.select_dtypes("float64").columns)

我很难找出如何以动态方式将正确的列分配给原始列。我试过了,但它不起作用,因为我调用了一个函数:

df.select_dtypes("float64") = pd.DataFrame(scaler.fit_transform(df.select_dtypes("float64").to_numpy()), columns = df.select_dtypes("float64").columns)

如何将每一列分配回其原始数据框?

标签: pythonpandas

解决方案


这对我有用:

df.loc[:,df.dtypes=='float64'] = scaler.fit_transform(df.select_dtypes('float64'))

或者

df.loc[:,df.dtypes=='float64'] = scaler.fit_transform(df.loc[:,df.dtypes=='float64'])

推荐阅读