python中DataFrame常用的描述性統(tǒng)計分析方法詳解
DataFrame常用描述性統(tǒng)計分析方法
sum() 求和
使用sum()方法對DataFrame對象求和。
其中**set_option(‘display.unicode.east_asian_width’, True)**可以使顯示的DataFrame值與列名對齊。
sum有axis參數(shù),默認為0,表示對列求和
- 設(shè)置為1表示對行求和。
- 也可以設(shè)置 skipna參數(shù),改參數(shù)默認為True,表示不考慮缺失值,如果是False則表示考慮缺失值,當存在缺失值時,則對應(yīng)的結(jié)果表示為Nan。
- (布爾類型的參數(shù)值,當傳入為其它類型的值時,也解讀為該值的布爾值)
這里對示例數(shù)據(jù)的行求和,然后生成一個新的列添加在數(shù)據(jù)中。
import pandas as pd data = [[110, 105, 99], [105, 88, 115], [109, 120, 130]] index = [1, 2, 3] columns = ['語文', '數(shù)學(xué)', '英語'] pd.set_option('display.unicode.east_asian_width', True) df = pd.DataFrame(data=data, index=index, columns=columns) print(df) print("================================") # 增加一列 df['總成績'] = df.sum(axis=1, skipna=1) print(df)
程序運行結(jié)果如下:
mean() 求平均值
這里對生成數(shù)據(jù)的每一列求平均值,然后作為一個新的行增加給原數(shù)據(jù)。
通過示例可以看到,當原數(shù)據(jù)中存在空值時,計算均值時分子和分母都不計入該數(shù)據(jù)。即mean()求的是非空數(shù)據(jù)的平均值。
import pandas as pd data = [[110, 105, 99], [105, 88, 115], [109, 120, 130], [112, 115]] index = [1, 2, 3, 4] columns = ['語文', '數(shù)學(xué)', '英語'] pd.set_option('display.unicode.east_asian_width', True) df = pd.DataFrame(data=data, index=index, columns=columns) print(df) print("================================") new = df.mean() # 增加一行數(shù)據(jù)(語文、數(shù)學(xué)和英語的平均值,忽略索引) df = df.append(new, ignore_index=True) print(df)
關(guān)于DataFrame的append()方法
DataFrame增添一行可以使用append()方法。設(shè)置參數(shù),ignore_index=True可以忽略掉索引。
當在DataFrame后邊追加的對象為Series時,必須把ignore_index設(shè)為True,或者除非Serise有name屬性。 當追加多列時,設(shè)置ignore_index為True可以避免出現(xiàn)索引值重復(fù)的異常事件。 此外DataFrame的append()方法在未來的版本即將被取消。將由concat替代。
max() 最大值 & min() 最小值
import pandas as pd data = [[110, 105, 99], [105, 88, 115], [109, 120, 130]] index = [1, 2, 3] columns = ['語文', '數(shù)學(xué)', '英語'] pd.set_option('display.unicode.east_asian_width', True) df = pd.DataFrame(data=data, index=index, columns=columns) print(df) print("================================") df_max = df.max() print(df_max) print("================================") df_min = df.min() print(df_min)
median() 中位數(shù)
import pandas as pd data = [[110, 120, 110], [130, 130, 131], [115, 120, 130]] columns = ['語文', '數(shù)學(xué)', '英語'] df = pd.DataFrame(data=data, columns=columns) print(df) print("================================") print(df.median())
mode() 眾數(shù)
import pandas as pd data = [[110, 120, 110], [130, 130, 130], [130, 120, 130]] columns = ['語文', '數(shù)學(xué)', '英語'] df = pd.DataFrame(data=data, columns=columns) print(df) # 三科成績的眾數(shù) print(df.mode()) # 每一行的眾數(shù) print(df.mode(axis=1)) # “數(shù)學(xué)”的眾數(shù) print(df['數(shù)學(xué)'].mode())
var() 方差
import pandas as pd data = [[110, 113, 102, 105, 108], [118, 98, 119, 85, 118]] index = ['小黑', '小白'] columns = ['物理1', '物理2', '物理3', '物理4', '物理5'] df = pd.DataFrame(data=data, index=index, columns=columns) print(df) print("========================================") print(df.var(axis=1))
std() 標準差
import pandas as pd data = [[110, 120, 110], [130, 130, 130], [130, 120, 130]] columns = ['語文', '數(shù)學(xué)', '英語'] df = pd.DataFrame(data=data, columns=columns) print(df) print("=============================") print(df.std())
quantile() 分位數(shù)
以35%分位數(shù)為例
import pandas as pd # 創(chuàng)建DataFrame數(shù)據(jù)(數(shù)學(xué)成績) data = [120, 89, 98, 78, 65, 102, 112, 56, 79, 45] columns = ['數(shù)學(xué)'] df = pd.DataFrame(data=data, columns=columns) print(df) print("============================") # 計算35%的分位數(shù) x = df['數(shù)學(xué)'].quantile(0.35) # 輸出淘汰學(xué)生 print(df[df['數(shù)學(xué)'] <= x])
關(guān)于其他數(shù)據(jù)類型,如Timestamp,也可以使用分位數(shù)quantile()方法。
import pandas as pd pd.set_option('display.unicode.east_asian_width', True) df = pd.DataFrame({'A': [1, 2], 'B': [pd.Timestamp('2019'), pd.Timestamp('2020')], 'C': [pd.Timedelta('1 days'), pd.Timedelta('2 days')]}) print(df) print("==============================") print(df.quantile(0.5, numeric_only=False))
到此這篇關(guān)于python中DataFrame常用的描述性統(tǒng)計分析方法詳解的文章就介紹到這了,更多相關(guān)python的DataFrame常用方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
把MySQL表結(jié)構(gòu)映射為Python中的對象的教程
這篇文章主要介紹了簡單地把MySQL表結(jié)構(gòu)映射為Python中的對象的方法,用到了Python中的SQLAlchemy庫,需要的朋友可以參考下2015-04-04Python基于Matplotlib庫簡單繪制折線圖的方法示例
這篇文章主要介紹了Python基于Matplotlib庫簡單繪制折線圖的方法,涉及Python Matplotlib庫的相關(guān)使用技巧,需要的朋友可以參考下2017-08-08anaconda虛擬環(huán)境python?sklearn庫的安裝過程
Anaconda是專注于數(shù)據(jù)分析的Python發(fā)行版本,包含了conda、Python等190多個科學(xué)包及其依賴項,這篇文章主要給大家介紹了關(guān)于anaconda虛擬環(huán)境python?sklearn庫的安裝過程,需要的朋友可以參考下2023-11-11Python2.7基于笛卡爾積算法實現(xiàn)N個數(shù)組的排列組合運算示例
這篇文章主要介紹了Python2.7基于笛卡爾積算法實現(xiàn)N個數(shù)組的排列組合運算,涉及Python笛卡爾積算法及排列組合操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-11-11