根据函数中的值计数创建虚拟变量
Creating dummy variable based on value counts in a function
我正在尝试将 0 分配给函数中频率较高的字符串,将 1 分配给频率较低的字符串。我的想法是,它应该采用任何带有二进制字符串的列,并根据值计数分配 0 和 1。我该怎么做?
data = {'status':["Default", "Non-Default", "Non-Default", "Non-Default", "Default", "Non-Default"]}
df = pd.DataFrame(data)
df
status
0 Default
1 Non-Default
2 Non-Default
3 Non-Default
4 Default
5 Non-Default
df.value_counts()
status
Non-Default 4
Default 2
dtype: int64
您可以使用:
df['binary'] = df['status'].ne(df['status'].mode().iloc[0]).astype(int)
mode
得到最频繁的值,iloc[0]
得到第一个(相等的情况下)。然后我们识别 NOT 这个字符串 (True
) 的值并转换为整数 (1
)。最常见的字符串将是 0
.
输出:
status binary
0 Default 1
1 Non-Default 0
2 Non-Default 0
3 Non-Default 0
4 Default 1
5 Non-Default 0
我正在尝试将 0 分配给函数中频率较高的字符串,将 1 分配给频率较低的字符串。我的想法是,它应该采用任何带有二进制字符串的列,并根据值计数分配 0 和 1。我该怎么做?
data = {'status':["Default", "Non-Default", "Non-Default", "Non-Default", "Default", "Non-Default"]}
df = pd.DataFrame(data)
df
status
0 Default
1 Non-Default
2 Non-Default
3 Non-Default
4 Default
5 Non-Default
df.value_counts()
status
Non-Default 4
Default 2
dtype: int64
您可以使用:
df['binary'] = df['status'].ne(df['status'].mode().iloc[0]).astype(int)
mode
得到最频繁的值,iloc[0]
得到第一个(相等的情况下)。然后我们识别 NOT 这个字符串 (True
) 的值并转换为整数 (1
)。最常见的字符串将是 0
.
输出:
status binary
0 Default 1
1 Non-Default 0
2 Non-Default 0
3 Non-Default 0
4 Default 1
5 Non-Default 0