将函数应用于 DataFrame 中的列
Applying function to columns in DataFrame
我有一个包含列 ['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 的新手,希望我的问题有意义。
问题出在你的归一化函数上。它应该 return 规范化的值:
def normalization(x):
return (x - np.min(x)) / (np.max(x) - np.min(x))
当您不 return 值 None 时,值 return 导致 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)
我有一个包含列 ['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 的新手,希望我的问题有意义。
问题出在你的归一化函数上。它应该 return 规范化的值:
def normalization(x):
return (x - np.min(x)) / (np.max(x) - np.min(x))
当您不 return 值 None 时,值 return 导致 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)