列表对象没有属性列

List object has no attribute columns

我正在尝试对简单数据集

执行最小-最大缩放
data2 = [10, 20, 35, 70, 100]

下面的代码给我一个错误

AttributeError: 'list' object has no attribute 'columns'

def min_max_scaling(df):
df_norm = df.copy()
for col in df_norm.columns:
    df_norm[col] = (df_norm[col] - df_norm[col].min()) / (df_norm[col].max() - df_norm[col].min())
return df_norm

df_normalized = min_max_scaling(data3)

df_normalized

您的 min_max_scaling 函数需要一个 pandas 数据框实例,但您向它传递的是一个列表。按如下方式更改代码应该有效。

import pandas as pd

def min_max_scaling(df):
    df_norm = df.copy()
    for col in df_norm.columns:
        df_norm[col] = (df_norm[col] - df_norm[col].min()) / (df_norm[col].max() - df_norm[col].min())
    
    return df_norm

data2 = [10, 20, 35, 70, 100]

data2 = pd.DataFrame(data2)

df_normalized = min_max_scaling(data2)

print(df_normalized)

我猜你有一个数据框 df 并且你想对 df 中的每一列进行 (max-min) 缩放?

那么你不应该向你的函数传递一个列表,而是一个数据框。

def min_max_scaling(df):
    df_norm = df.copy()
    for col in df_norm.columns:
        df_norm[col] = (df_norm[col] - df_norm[col].min()) / (df_norm[col].max() - df_norm[col].min())
    return df_norm


df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
df_normalized = min_max_scaling(df)