我試圖將 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
uj5u.com熱心網友回復:
您可以使用:
df['binary'] = df['status'].ne(df['status'].mode().iloc[0]).astype(int)
mode獲取最頻繁的值,并iloc[0]獲取第一個值(在相等的情況下)。然后我們識別不是這個字串的值 ( 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/478506.html
上一篇:熊貓:三個列出的列寬格式
