0
假設我有一個DataFrame
,其中包含一列A
,其中只包含值'foo'
和'bar'
,我想計算foo
s的分數。要做到這一點的方法之一是使用布爾選擇與__len__
共同發揮作用:如何獲得熊貓系列中某個特定值的分數?
import pandas as pd
import numpy as np
df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
'foo', 'bar', 'foo', 'foo'],
'B' : ['one', 'one', 'two', 'three',
'two', 'two', 'one', 'three'],
'C' : np.random.randn(8),
'D' : np.random.randn(8)})
assert len(df[df['A'] == 'foo'])/len(df) == 0.625
不過,我覺得這也可以在使用groupby
和count
更pandas
-native的方式來完成。例如,
print(df.groupby('A').count()/len(df))
產生
B C D
A
bar 0.375 0.375 0.375
foo 0.625 0.625 0.625
什麼是進行推薦的方法是什麼?我是否在任何欄目中選擇foo
?
另外'DF [ 'A']等式( '富')的意思是()'? – Zero
如果性能是一個需求,在'np.ndarray'上運行也可能會更快,使用類似'(df.A.values =='foo')。mean()';與'(df.A =='foo')。mean()'相比,這在10000000行數據幀中節省了大約三分之一。 – fuglede
也許'df.A.value_counts()/ len(df)' – Wen