一、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])