我有一個帶有 ['A', 'B', 'C'] 列的 DataFrame。我正在嘗試使用我的函式對每一列進行標準化。問題是它在我執行時有效normalization(df['A'])
,但在我將串列傳遞給函式時無效:
def normalization(x):
x = (x - np.min(x)) / (np.max(x) - np.min(x))
for column in df.columns:
normalization(df[column])
在這種情況下如何處理?我看過的答案.map
和.apply
,但沒有在我的情況下,出于某種原因。我是 Python 新手,希望我的問題有意義。
uj5u.com熱心網友回復:
問題是您的標準化功能。它應該回傳歸一化的值:
def normalization(x):
return (x - np.min(x)) / (np.max(x) - np.min(x))
當您不回傳值時,回傳值 None 導致 map\apply 中的值為 None。
作業代碼示例:
import pandas as pd
import numpy as np
def normalization(x):
return (x - np.min(x)) / (np.max(x) - np.min(x))
data = {'A': [1, 2, 3], 'B': [3, 4, 5], 'C': [4,5,6]}
df = pd.DataFrame(data=data)
df = df.apply(normalization)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/360927.html
下一篇:從字典創建資料框