调用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