python中DataFrame常用的描述性統(tǒng)計(jì)分析方法詳解
DataFrame常用描述性統(tǒng)計(jì)分析方法
sum() 求和
使用sum()方法對DataFrame對象求和。
其中**set_option(‘display.unicode.east_asian_width’, True)**可以使顯示的DataFrame值與列名對齊。
sum有axis參數(shù),默認(rèn)為0,表示對列求和
- 設(shè)置為1表示對行求和。
- 也可以設(shè)置 skipna參數(shù),改參數(shù)默認(rèn)為True,表示不考慮缺失值,如果是False則表示考慮缺失值,當(dāng)存在缺失值時(shí),則對應(yīng)的結(jié)果表示為Nan。
- (布爾類型的參數(shù)值,當(dāng)傳入為其它類型的值時(shí),也解讀為該值的布爾值)
這里對示例數(shù)據(jù)的行求和,然后生成一個(gè)新的列添加在數(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)程序運(yùn)行結(jié)果如下:

mean() 求平均值
這里對生成數(shù)據(jù)的每一列求平均值,然后作為一個(gè)新的行增加給原數(shù)據(jù)。
通過示例可以看到,當(dāng)原數(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可以忽略掉索引。
當(dāng)在DataFrame后邊追加的對象為Series時(shí),必須把ignore_index設(shè)為True,或者除非Serise有name屬性。 當(dāng)追加多列時(shí),設(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() 標(biāo)準(zhǔn)差
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("============================")
# 計(jì)算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)計(jì)分析方法詳解的文章就介紹到這了,更多相關(guān)python的DataFrame常用方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python操作MySQL數(shù)據(jù)庫的入門指南
MySQL是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),廣泛應(yīng)用于各種應(yīng)用程序和網(wǎng)站,在本篇技術(shù)博客中,我們將探討如何使用Python操作MySQL數(shù)據(jù)庫,需要的可以收藏一下2023-06-06
Python極簡代碼實(shí)現(xiàn)楊輝三角示例代碼
楊輝三角形因?yàn)槠湫问胶唵危钟幸欢ǖ氖褂脙r(jià)值,因此是入門編程題中被用的最多的,也是很好的語言實(shí)例標(biāo)的。這篇文章就給大家介紹了Python極簡代碼實(shí)現(xiàn)楊輝三角的方法,文章給出了詳細(xì)的示例代碼和解釋,對大家理解很有幫助,感興趣的朋友們下面來一起看看吧。2016-11-11
Python實(shí)現(xiàn)在tkinter中使用matplotlib繪制圖形的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)在tkinter中使用matplotlib繪制圖形的方法,結(jié)合實(shí)例形式分析了Python使用tkinter與matplotlib進(jìn)行正弦曲線圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
Python實(shí)現(xiàn)爬蟲爬取NBA數(shù)據(jù)功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)爬蟲爬取NBA數(shù)據(jù)功能,涉及Python針對URL模塊、字符串、列表遍歷、Excel寫入等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
Java byte數(shù)組操縱方式代碼實(shí)例解析
這篇文章主要介紹了Java byte數(shù)組操縱方式代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
Python腳本簡單實(shí)現(xiàn)打開默認(rèn)瀏覽器登錄人人和打開QQ的方法
這篇文章主要介紹了Python腳本簡單實(shí)現(xiàn)打開默認(rèn)瀏覽器登錄人人和打開QQ的方法,涉及Python針對瀏覽器及應(yīng)用程序的相關(guān)操作技巧,代碼非常簡單實(shí)用,需要的朋友可以參考下2016-04-04

