1. 程式人生 > >python pandas中series與dataframe資料型別屬性及操作基礎

python pandas中series與dataframe資料型別屬性及操作基礎

一)屬性

series    :.index,.values, .name,.index.name
dataframe :.columns, .index,.values

二)建立方法
series:
一組陣列(列表或元組),series除了一組資料外還包括一組索引(即只有行索引),索引可自行定義也可利用Series(),自動生成索引;
dataframe:
是表格型資料,既有行索引又有列索引,每列資料可以為不同型別資料(數值、字串、布林型值),可利用DataFrame(其他資料,dataframe屬性)指定dataframe的屬性建立dataframe。

三)例項
3.1 建立series及其屬性展示例項

程式碼

#建立series
import pandas as pd
obj_list=[1,2,3,4]
obj_tuple=(4,5,6,7)
obj_dict={'a':[1,2],'b':[2,3],'c':[3,4],'d':[4,5]}
obj_series_list=pd.Series(obj_list)#通過列表建立series
obj_series_tuple=pd.Series(obj_tuple,index=list('abcd'))#通過元組建立series
obj_series_dict=pd.Series(obj_dict)#通過字典建立series
#定義屬性
obj_series_list.index.name='zimu' obj_series_list.name='data' print "#通過列表建立series" print obj_series_list print "#通過元組建立series" print obj_series_tuple print "#通過字典建立series" print obj_series_dict #顯示series型別及屬性 print type(obj_series_list),obj_series_list.dtype print obj_series_list.index,obj_series_list.index
.name print obj_series_list.values,obj_series_list.name

執行結果

#通過列表建立series
zimu
0    1
1    2
2    3
3    4
Name: data, dtype: int64
#通過元組建立series
a    4
b    5
c    6
d    7
dtype: int32
#通過字典建立series
a    [1, 2]
b    [2, 3]
c    [3, 4]
d    [4, 5]
dtype: object
<class 'pandas.core.series.Series'> int64
RangeIndex(start=0, stop=4, step=1, name=u'zimu') zimu
[1 2 3 4] data

3.2建立dataframe及其屬性展示例項
在構建DataFrame時,最常用的就是先建立一個data,data一般可以是字典和陣列,再用a=DataFrame(data)來轉換為DataFrame結構。在DataFrame(data)時也可以同時傳入index和columns引數,兩個引數必須是list列表型

1)由陣列、列表或元組組成的字典:,每個序列變成DataFrame的一列,所有序列的長度必須相同
程式碼

#建立dataframe
import pandas as pd
import numpy as np
obj_dict={'a':[1,2],'b':[2,3],'c':[3,4],'d':[4,5]}
obj_array=np.array([[1,2,3,4],[3,4,5,6]])
obj_series_1=pd.Series([11,12,13,14])
obj_series_2=pd.Series([21,22,23,24])
obj_dataframe_dict=pd.DataFrame(obj_dict)#通過字典建立dataframe
obj_dataframe_array=pd.DataFrame(obj_array,index=['one','two'])#通過矩陣建立dataframe
obj_dataframe_series=pd.DataFrame([obj_series_1,obj_series_2])#通過series建立dataframe
obj_dataframe_dataframe=pd.DataFrame(obj_dataframe_series,index=[0,1,'one'],columns=[0,1,2,'a'])#通過其他dataframe建立dataframe
print "#通過字典建立dataframe"
print obj_dataframe_dict
print "#通過矩陣建立dataframe"
print obj_dataframe_array
print "#通過series建立dataframe"
print obj_dataframe_series
print "#通過其他dataframe建立dataframe"
print obj_dataframe_dataframe
#dataframe屬性
print obj_dataframe_dataframe.dtypes
print obj_dataframe_dataframe.values
print obj_dataframe_dataframe.columns
print obj_dataframe_dataframe.index

執行結果

#通過字典建立dataframe
   a  b  c  d
0  1  2  3  4
1  2  3  4  5
#通過矩陣建立dataframe
     0  1  2  3
one  1  2  3  4
two  3  4  5  6
#通過series建立dataframe
    0   1   2   3
0  11  12  13  14
1  21  22  23  24
#通過其他dataframe建立dataframe
        0     1     2   a
0    11.0  12.0  13.0 NaN
1    21.0  22.0  23.0 NaN
one   NaN   NaN   NaN NaN
0    float64
1    float64
2    float64
a    float64
dtype: object
[[ 11.  12.  13.  nan]
 [ 21.  22.  23.  nan]
 [ nan  nan  nan  nan]]
Index([0, 1, 2, u'a'], dtype='object')
Index([0, 1, u'one'], dtype='object')

注意:
1)由series構成的dataframe,可以合成原series索引,也可以自定義索引,但索引長度要和dataframe行數一致
2)由其他dataframe組成的dataframe,當自定義索引與原來dataframe不一樣時,新的dataframe會增加自定義索引行,其values=nan。