我正在使用具有以下结构的 DataFrame 学习 Python/Pandas:
import pandas as pd
df = pd.DataFrame({'key' : [111, 222, 333, 444, 555, 666, 777, 888, 999],
'score1' : [-1, 0, 2, -1, 7, 0, 15, 0, 1],
'score2' : [2, 2, -1, 10, 0, 5, -1, 1, 0]})
print(df)
key score1 score2
0 111 -1 2
1 222 0 2
2 333 2 -1
3 444 -1 10
4 555 7 0
5 666 0 5
6 777 15 -1
7 888 0 1
8 999 1 0
score1
和score2
Series的可能值是-1
所有正整数(包括0
)。
我的目标是通过以下方式对两列进行规范化:
- 如果值等于
-1
,则返回缺失NaN
值 0
否则,在和之间对剩余的正整数进行归一化1
。
我不想覆盖原来的 Seriesscore1
和score2
. 相反,我想在两个 Series 上应用一个函数来创建两个新列(比如norm1
和norm2
)。
我在这里阅读了几篇推荐使用MinMaxScaler()
sklearn 预处理模块中的方法的帖子。我认为这不是我需要的,因为我需要一个额外的条件来处理这些-1
值。
我认为我需要的是可以在两个系列上应用的特定功能。我也熟悉了规范化的工作原理,但我在 Python 中实现这个函数时遇到了困难。任何额外的帮助将不胜感激。