假設(shè)我有一個(gè)看起來像這樣的 python 數(shù)據(jù)框:Factor_1 Factor_2 Factor_3 Factor_4 Factor_5 A B A Nan Nan B D F A Nan F A D B A像這樣,我有 5 列具有不同的因素。我想創(chuàng)建一個(gè)列來計(jì)算數(shù)據(jù)框中出現(xiàn)的這些因素的數(shù)量,因此預(yù)期的輸出將如下所示:Factor Count A 5 B 3 D 2 F 2 Nan 3我一直在嘗試使用 groupby 但無法獲得所需的輸出,使用這樣的東西。df['Counts'] = df.groupby(['Factor_1'])['Factor_2', 'Factor_3', 'Factor_4', 'Factor_5'].transform('count')我實(shí)際上不知道還能做什么,如果有人能幫助我那就太好了。
2 回答

jeck貓
TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
嘗試stack
使用value_counts
:
df.stack(dropna=False).value_counts(dropna=False)
A? ? ? 5
B? ? ? 3
NaN? ? 3
D? ? ? 2
F? ? ? 2
dtype: int64

婷婷同學(xué)_
TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
melt
這是使用和 的另一個(gè)潛在解決方案value_counts
:
df.melt().value.value_counts()
輸出:
A? ? ? 5
B? ? ? 3
Nan? ? 3
F? ? ? 2
D? ? ? 2
添加回答
舉報(bào)
0/150
提交
取消