1. 程式人生 > >pandas知識點(彙總和計算描述統計)

pandas知識點(彙總和計算描述統計)

呼叫DataFrame的sum方法會返還一個含有列的Series:
In [5]: df = DataFrame([[1.4,np.nan],[7.1,-4.5],[np.nan,np.nan],[0.75,-1.3]],index=["a","b","c","d"],columns=["one","two"])
In [6]: df
Out[6]:
    one  two
a  1.40  NaN
b  7.10 -4.5
c   NaN  NaN
d  0.75 -1.3
In [8]: df.sum()
Out[8]:
one    9.25
two   -5.80
dtype: float64

 

按行進行求和運算:
In [9]: df.sum(axis=1)
Out[
9]: a 1.40 b 2.60 c 0.00 d -0.55 dtype: float64

 

NA值會自動被排除,除非整個切片都是NA或skipna為false:
In [10]: df.mean(axis=1,skipna=False)
Out[10]:
a      NaN
b    1.300
c      NaN
d   -0.275
dtype: float64

 

idxmax,idxmin返回間接統計:
In [12]: df.idxmax()
Out[12]:
one    b
two    d
dtype: object

 

累計型方法:
In [13]: df.cumsum()
Out[13]:
    one  two
a  1.40  NaN
b  8.50 -4.5
c   NaN  NaN
d  9.25 -5.8

 

describe可以一次產生多個彙總統計:
In [14]: df.describe()
Out[14]:
            one       two
count  3.000000  2.000000
mean   3.083333 -2.900000
std    3.493685  2.262742
min    
0.750000 -4.500000 25% 1.075000 -3.700000 50% 1.400000 -2.900000 75% 4.250000 -2.100000 max 7.100000 -1.300000

 

1.相關係數和協方差: Series的corr方法用於計算兩個Series中重疊 cov用於計算協方差 DataFrame的corrwith方法,可以計算其列或行跟另一個Series或DataFrame之間的相關係數。   2.唯一值、值計數以及成員資格 unique可以得到Series中的唯一值陣列:
In [4]: obj = Series(['c','a','d','a','a','b','b','c','c'])
In [5]: obj.unique()
Out[5]: array(['c', 'a', 'd', 'b'], dtype=object)

 

value_counts用於計算各值出現的頻率,結果降序排列:
In [6]: obj.value_counts()
Out[6]:
a    3
c    3
b    2
d    1
dtype: int64

 

value_counts也是pandas的一個方法:
In [9]: pd.value_counts(obj.values, sort=True)
Out[9]:
a    3
c    3
b    2
d    1
dtype: int64

 

isin可以判斷向量化集合的成員資格
In [11]: mask = obj.isin(['b','c'])
In [12]: mask
Out[12]:
0     True
1    False
2    False
3    False
4    False
5     True
6     True
7     True
8     True
dtype: bool
In [13]: obj[mask]
Out[13]:
0    c
5    b
6    b
7    c
8    c
dtype: object