pandas的彙總和計算描述統計
阿新 • • 發佈:2019-01-02
pandas提供了很多常用的數學和統計方法,其中大部分都屬於約簡和彙總統計,用於從Series中提取單個值(如sum或mean)或從DataFrame的行或列中提取一個Series。
一、DataFrame的sum和mean方法
a = [[1,np.nan,9],[2,8,3],[3,5,np.nan]]
data = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
print(data)
'''
one two three
a 1 NaN 9.0
b 2 8.0 3.0
c 3 5.0 NaN
'''
#對列求和
print(data.sum())
'''
one 6.0
two 13.0
three 12.0
'''
#對行求和
print(data.sum(axis=1))
'''
a 10.0
b 13.0
c 8.0
'''
#對行求平均值,預設排除NaN值
print(data.mean(axis=1))
'''
a 5.000000
b 4.333333
c 4.000000
'''
#對行求平均值,禁用自動排除NaN值
print(data.mean(axis=1,skipna=False))
'''
a NaN
b 4.333333
c NaN
'''
二、統計
上面的操作都是對於列,如果想要對行進行操作,只需要在方法中設定axis引數為1即可。a = [[1,np.nan,9],[2,8,3],[3,5,np.nan]] data = DataFrame(a,index=["0","1","2"],columns=["a","b","c"]) print(data) ''' a b c 0 1 NaN 9.0 1 2 8.0 3.0 2 3 5.0 NaN ''' #返回每一列中最大值的行索引 print(data.idxmax()) ''' a 2 b 1 c 0 ''' #返回每一列中最小值的行索引 print(data.idxmin()) ''' a 0 b 2 c 1 ''' #對每列的值進行累加 print(data.cumsum()) ''' a b c 0 1.0 NaN 9.0 1 3.0 8.0 12.0 2 6.0 13.0 NaN '''
三、描述
a、DataFrame
a = [[1,np.nan,9],[2,8,3],[3,5,np.nan]] data = DataFrame(a,index=["0","1","2"],columns=["a","b","c"]) print(data) ''' a b c 0 1 NaN 9.0 1 2 8.0 3.0 2 3 5.0 NaN ''' #列出DataFrame的描述 ''' 四分位數用於繪製箱線圖判斷是否為異常值 count:該列(行)非NA值的個數 mean :該列(行)的均值 std :該列(行)的方差 25% :上四分位數 50% :非NA值的平均數 75% :下四分位數 max :最大值 ''' print(data.describe()) ''' a b c count 3.0 2.00000 2.000000 mean 2.0 6.50000 6.000000 std 1.0 2.12132 4.242641 min 1.0 5.00000 3.000000 25% 1.5 5.75000 4.500000 50% 2.0 6.50000 6.000000 75% 2.5 7.25000 7.500000 max 3.0 8.00000 9.000000 '''
b、Series
如果值是數值型的描述與DataFrame一致,下面展示當值為非數值的時候的描述。
s = Series(["a","b","b","d"])
print(s)
'''
0 a
1 b
2 b
3 d
'''
print(s.describe())
'''
count 4
unique 3
top b
freq 2
'''
除了上面提到的方法之外,pandas還提供了許多的方法,如下表