pandas知識點(彙總和計算描述統計)
阿新 • • 發佈:2018-12-12
呼叫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 min0.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