python數(shù)據(jù)分析2:DataFrame對(duì)象

DataFrame對(duì)象:二維表數(shù)據(jù)結(jié)構(gòu)涧卵,由行列數(shù)據(jù)組成的表格

常用index表示行儒搭,columns表示列

import pandas as pd

from pandas.core import series

pd.set_option('display.unicode.east_asian_width',True)

data = [[110, 105, 99], [105, 88, 115], [109, 120, 130]]

index = [0, 1, 2]

columns = ['語(yǔ)文', '數(shù)學(xué)', '英語(yǔ)']

df = pd.DataFrame(data=data, index=index, columns=columns)

# print(df)

'''

? 語(yǔ)文? 數(shù)學(xué)? 英語(yǔ)

0? 110? 105? ? 99

1? 105? ? 88? 115

2? 109? 120? 130

'''

# print(df.columns)? # Index(['語(yǔ)文', '數(shù)學(xué)', '英語(yǔ)'], dtype='object')

# print(df.index)? # Int64Index([0, 1, 2], dtype='int64')

# 遍歷DataFrame數(shù)據(jù)的每一列

for col in df.columns:

? ? series = df[col]

? ? print(series)

'''

0? ? 110

1? ? 105

2? ? 109

Name: 語(yǔ)文, dtype: int64

0? ? 105

1? ? 88

2? ? 120

Name: 數(shù)學(xué), dtype: int64

0? ? 99

1? ? 115

2? ? 130

Name: 英語(yǔ), dtype: int64

'''

1.創(chuàng)建一個(gè)DataFrame對(duì)象

pandas.DataFrame(data,index,columns,dtype,copy)

# data表示數(shù)據(jù)万搔,可以是ndarray數(shù)組魁索,series對(duì)象迈勋、列表、字典等

# index表示行標(biāo)簽(索引)

# columns表示列標(biāo)簽(索引)

# dtype每一列數(shù)據(jù)的數(shù)據(jù)類型

# copy用于復(fù)制數(shù)據(jù)

# 返回值DataFrame

通過(guò)二維數(shù)組創(chuàng)建成績(jī)表

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

data = [[110, 105, 99], [105, 88, 115], [109, 120, 130]]

columns = ['語(yǔ)文', '數(shù)學(xué)', '英語(yǔ)']

df = pd.DataFrame(data=data, columns=columns)

print(df)

'''

? 語(yǔ)文? 數(shù)學(xué)? 英語(yǔ)

0? 110? 105? ? 99

1? 105? ? 88? 115

2? 109? 120? 130

'''

2.通過(guò)字典創(chuàng)建DataFrame對(duì)象

value值只能是一維數(shù)組或單個(gè)的簡(jiǎn)單數(shù)據(jù)類型

# 數(shù)組瘫想,則要求所有的數(shù)組長(zhǎng)度一致

# 單個(gè)數(shù)據(jù)弃锐,每行都需要添加相同數(shù)據(jù)

import pandas as pd

pd.set_option('display.unicode.east_asian_width', True)

df = pd.DataFrame({

? ? '語(yǔ)文':[110, 105, 99],

? ? '數(shù)學(xué)':[105, 88, 115],

? ? '英語(yǔ)':[109, 120, 130],

? ? '班級(jí)':'高一7班'

},index=[0,1,2])

print(df)

'''

? 語(yǔ)文? 數(shù)學(xué)? 英語(yǔ)? ? 班級(jí)

0? 110? 105? 109? 高一7班

1? 105? ? 88? 120? 高一7班

2? ? 99? 115? 130? 高一7班

'''

'''

【DataFrame屬性】

values 查看所有元素的值? df.values

dtypes 查看所有元素的類型? df.dtypes

index 查看所有行名、重命名行名? df.index? ? df.index=[1,2,3]

columns 查看所有列名殿托、重命名列名? df.columns? df.columns=['語(yǔ)','數(shù)']

T 行列數(shù)據(jù)轉(zhuǎn)換? df.T

head 查看前n條數(shù)據(jù),默認(rèn)5條? ? ? ? ? ? ? ? df.head()? df.head(10)

tail 查看后n條數(shù)據(jù)剧蚣,默認(rèn)5條? ? ? ? ? ? ? ? df.tail()? df.tail(10)

shape 查看行數(shù)和列數(shù)支竹,[0]表示行旋廷,[1]表示列? ? df.shape[0]? df.shape[1]

info 查看索引,數(shù)據(jù)類型和內(nèi)存信息? ? df.info

【DataFrame函數(shù)】

describe 查看每列的統(tǒng)計(jì)匯總信息礼搁,DataFrame類型? df.describe()

count? ? 返回每一列中的非空值的個(gè)數(shù)? ? ? ? ? ? ? df.count()

sum? ? ? 返回每一列和和饶碘,無(wú)法計(jì)算返回空值? ? ? df.sum()

max? ? ? 返回每一列的最大值? ? ? ? ? ? ? ? df.max()

min? ? ? 返回每一列的最小值? ? ? ? ? ? ? ? df.min()

argmax? 返回最大值所在的自動(dòng)索引位置? ? ? ? df.argmax()

argmin? 返回最小值所在的自動(dòng)索引位置? ? ? ? df.argmin()

idxmax? 返回最大值所在的自定義索引位置? ? ? df.idxmax()

idxmin? 返回最小值所在的自定義索引位置? ? ? df.idxmin()

mean? ? 返回每一列的平均值? ? ? ? ? ? ? ? df.mean()

median? 返回每一列的中位數(shù)? ? ? ? ? ? ? ? df.median()

var? ? ? 返回每一列的方差? ? ? ? ? ? ? ? ? df.var()

std? ? ? 返回每一列的標(biāo)準(zhǔn)差? df.std()

isnull? 檢查df中的空值,空值為T(mén)rue馒吴,否則為False,返回布爾型數(shù)組? df.isnull()

notnull? 檢查df中的空值扎运,非空值為T(mén)rue,否則為False,返回布爾型數(shù)組? df.notnull()

中位數(shù)又稱中值饮戳,是指按順序排列的一組數(shù)據(jù)中居于中間位置的數(shù)

方差用于度量單個(gè)隨機(jī)變量的離散程序(不連續(xù)程度)

標(biāo)準(zhǔn)差是方差的算術(shù)平方根豪治,反映數(shù)據(jù)集的離散程度

'''

3.導(dǎo)入.xls或.xlsx文件

# pandas.read_excel(io,sheetname=0,header=0,names=None,index_col=None,usecols=None,squeeze=False,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrow=None,na_values=None,keep_defalut_na=True,verbose=False,parse_dates=False,date_parser=None,thousands=None,comment=None,skipfooter=0,conver_float=True,mangle_dupe_cols=True,**kwds)

'''

io 字符串,xls或xlsx文件路徑或類文件對(duì)象

sheet_name:None扯罐、字符串负拟、整數(shù)、字符串列表或整數(shù)列表歹河,默認(rèn)值為0

? ? 字符串用于工作表名稱掩浙;整數(shù)為索引,表示工作表位置

? ? 字符串列表或整數(shù)列表用于請(qǐng)求多個(gè)工作表秸歧,為None時(shí)則獲取所有的工作表

? ? sheet_name = 0 第一個(gè)Sheet頁(yè)中的數(shù)據(jù)作為DataFrame對(duì)象

? ? sheet_name = 1 第二個(gè)Sheet頁(yè)中的數(shù)據(jù)作為DataFrame對(duì)象

? ? sheet_name = 'Sheet1' 名為Sheet1的Sheet頁(yè)中的數(shù)據(jù)作為DataFrame對(duì)象

? ? sheet_name = [0,1,'Sheet3'] 第一個(gè)厨姚,第二個(gè)和名為Sheet3的Sheet頁(yè)中的數(shù)據(jù)作為DataFrame對(duì)象

header:指定作為列名的行,默認(rèn)值為0键菱,即取第一行的值為列名谬墙。或數(shù)據(jù)不包含列名纱耻,則為header=None

names:默認(rèn)值為None芭梯,要使用的列名列表

index_col:指定列為索引列,默認(rèn)值為None弄喘,索引0是DataFrame對(duì)象的行標(biāo)簽

usecols:int玖喘、list或字符串,默認(rèn)值為None

? ? 如為None蘑志,則解析所有列

? ? 如為int累奈,則解析最后一列

? ? 如為list列表,則解析列號(hào)和列表的列

? ? 如為字符串急但,則表示以逗號(hào)分隔的Excel列字母和列范圍列表

squeeze:布爾值澎媒,默認(rèn)為False,如果解析的數(shù)據(jù)只包含一列波桩,則返回一個(gè)Series

dtype:列的數(shù)據(jù)類型名稱為字典戒努,默認(rèn)值為None

skiprows:省略指定行數(shù)的數(shù)據(jù),從第一行開(kāi)始

skipfooter:省略指定行數(shù)的數(shù)據(jù)镐躲,從尾部數(shù)的行開(kāi)始

4.導(dǎo)入指定Sheet頁(yè)的數(shù)據(jù)

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df = pd.read_excel('data.xlsx',sheet_name='Sheet1')

print(df.head())

# sheet_name=0表示第一個(gè)sheet頁(yè)的數(shù)據(jù)储玫,以此類推侍筛,如果不指定,則導(dǎo)入第一頁(yè)

5.指定行索引導(dǎo)入Excel數(shù)據(jù)

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df1 = pd.read_excel('data.xlsx',header=None)

print(df1.head())

'''

Empty DataFrame

Columns: []

Index: [1, 3, 5]

'''

# 導(dǎo)入第一列數(shù)據(jù)

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df1 = pd.read_excel('data.xlsx',usecols=[0])

print(df1.head())

# 導(dǎo)入第一列和第四列

df1 = pd.read_excel('data.xlsx',usecols=[0,3])

'''

Empty DataFrame

Columns: []

Index: [1, 3, 5]

'''

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末撒穷,一起剝皮案震驚了整個(gè)濱河市匣椰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌端礼,老刑警劉巖禽笑,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蛤奥,居然都是意外死亡佳镜,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)喻括,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)邀杏,“玉大人,你說(shuō)我怎么就攤上這事唬血⊥” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵拷恨,是天一觀的道長(zhǎng)脖律。 經(jīng)常有香客問(wèn)我,道長(zhǎng)腕侄,這世上最難降的妖魔是什么小泉? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮冕杠,結(jié)果婚禮上微姊,老公的妹妹穿的比我還像新娘。我一直安慰自己分预,他們只是感情好兢交,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著笼痹,像睡著了一般配喳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凳干,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天晴裹,我揣著相機(jī)與錄音,去河邊找鬼救赐。 笑死涧团,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播少欺,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼喳瓣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了赞别?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤配乓,失蹤者是張志新(化名)和其女友劉穎仿滔,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體犹芹,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡崎页,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腰埂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片飒焦。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖屿笼,靈堂內(nèi)的尸體忽然破棺而出牺荠,到底是詐尸還是另有隱情,我是刑警寧澤驴一,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布休雌,位于F島的核電站,受9級(jí)特大地震影響肝断,放射性物質(zhì)發(fā)生泄漏杈曲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一胸懈、第九天 我趴在偏房一處隱蔽的房頂上張望担扑。 院中可真熱鬧,春花似錦趣钱、人聲如沸涌献。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)洁奈。三九已至,卻和暖如春绞灼,著一層夾襖步出監(jiān)牢的瞬間利术,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工低矮, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留印叁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像轮蜕,于是被迫代替她去往敵國(guó)和親昨悼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容