創(chuàng)建dataframe

一、Dataframe的三個(gè)參數(shù)

1、data數(shù)據(jù),只輸入數(shù)據(jù)參數(shù),會(huì)默認(rèn)添加行索引和列索引,值為0,1,2...n遞增的方式。

調(diào)用DataFrame()方法,把二維列表轉(zhuǎn)化為DataFrame對(duì)象

from pandas import DataFrame,Series

lists=[

? ? ['name','zhang','san'],

? ? ['age',40,9],

? ? ['weight',80,6]

]

df=DataFrame(data=lists)

print(df)

2、通過DataFrame構(gòu)造函數(shù)中的參數(shù)index行索引和columns列索引傳值,設(shè)定DataFrame的行、列索引。

df2=DataFrame(data=lists,index=['a','b','c'],columns=['變量','第一部分','第二部分'])

print(df2)

3、使用字典創(chuàng)建DataFrame,字典的鍵作為列索引,字典的值作為數(shù)據(jù)

from pandas import DataFrame,Series

dict={

? ? '變量':['name','age','weight'],'第一部分': ['zhang',40,80],'第二部分':['san',9,6]

}

df3=DataFrame(data=dict,index=['a','b','c'])

df3

二、屬性

1、判斷一維和二維

df.ndim

#輸出結(jié)果為2說明是二維,1說明是一維。

2、分析行數(shù)和列數(shù)

df.shape

#輸出結(jié)果為:(行數(shù),列數(shù))

3、獲取頭部數(shù)據(jù),沒有參數(shù),默認(rèn)是5

df.head(數(shù)字)

4、獲取尾部數(shù)據(jù),沒有參數(shù),默認(rèn)是5

df.tail(數(shù)字)

5、index.to_list()方法獲取行索引列表

df.index.to_list()

#輸出結(jié)果為:[index列表],如:['a', 'b', 'c']

6、columns.to_list()方法獲取行索引列表

df.columns.to_list()

#輸出結(jié)果為:[列索引列表],如:['變量', '第一部分', '第二部分']

三、取值

1、切片取值

(1)通過位置索引切片取一行(df[起始位置:結(jié)束位置])

df[0:1]

#輸出結(jié)果為:

? ?變量? 第一部分? 第二部分

a name? zhang? ? san

(2)通過位置索引切片取一行(df[起始位置:結(jié)束位置])

df[0:3]

#輸出結(jié)果為:

? ?變量? ?第一部分? ?第二部分

a? ?name? zhang? ? san

b? ? age? ? ?40? ? ? ? ?9

c? ?weight? ?80? ? ? ? 6

(3)獲取某列(df[列索引])

df['第一部分']

#輸出結(jié)果為:

a? ? ? zhang

b? ? ? ? 40

c? ? ? ? 80

(4)獲取多列(df[列索引列表])#注意為兩個(gè)列表嵌套[[]]

df[['第一部分','第二部分']]

? ?第一部分? ? 第二部分

a? zhang? ? ? ? san

b? ? 40? ? ? ? ? ?9

c? ?80? ? ? ? ? ? 6

2、行、列標(biāo)簽索引?。╨oc方法,注意此方法特殊不是(),而是[])

(1)行、列標(biāo)簽索引取某一行某一列的值,也就相當(dāng)于excel單元格的值

df.loc['a','變量']

#輸出結(jié)果為:'name'

(2)行、列標(biāo)簽索引取某一行多列的值

df.loc['a',['變量','第二部分']]

#輸出結(jié)果為:

變量 name

第二部分? ? san

(3)行、列標(biāo)簽索引取某一行所有列

df.loc['a',:]

(4)行、列標(biāo)簽索引取某一列所有行

df.loc[:,'變量']

(5)行、列標(biāo)簽索引取多行多列

df.loc[['a','c'],['變量','第二部分']]

(6)連續(xù)多行多列

df.loc['a':'c','變量':'第二部分']

3、通過行位置索引取值(iloc,注意此方法特殊不是(),而是[])

(1)獲取單行

df.iloc[2]

(2)獲取連續(xù)多行

df.iloc[0:2]

(3)獲取不連續(xù)多行

df.iloc[[0,2],:]

(4)獲取某行某列,相當(dāng)于excel的單元格

df.iloc[0,2]

(5)獲取某列所有行

df.iloc[:,[2]]

(6)獲取多行多列

df.iloc[[0,2],[0,2]]

(7)獲取連續(xù)多行多列

df.iloc[0:2,0:2]

四、遍歷

1、按行遍歷

(1)輸出所有

for index,row_data in df.iterrows():

? ? print(index,row_data)

#輸出結(jié)果為:

a 變量 name

第一部分? ? zhang

第二部分? ? ? san

b 變量? ? ? age

第一部分? ? 40

第二部分? ? ? 9

c 變量? ? ? weight

第一部分? ? ? ? 80

第二部分? ? ? ? 6

(2)輸出某列

for index,row_data in df.iterrows():

? ? print(index,row_data['變量'])

(3)輸出某行

for index,row_data in df.iterrows():

? ? if?index=='a':

?????????print(index,row_data)

(4)選取部分賦值

for index,row_data in df.iterrows():

? ? a,b=row_data[0:2]

? ? print([a,b])

2、按列遍歷

(1)輸出所有

for columns,column_data in df.iteritems():

? ? print(columns,column_data)

(2)輸出某列

for columns,column_data in df.iteritems():

? ? if?columns==‘變量':

? ? ? ? print(columns,column_data)

(3)輸出某行

for columns,column_data in df.iteritems():

? ? print(columns,column_data['a'])

(4)選取部分賦值

for columns,column_data in df.iteritems():

? ? a,b=column_data[0:2]

? ? print([a,b])

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容