數據框相似於二維的關係表,包含一組有序的列,列與列之間的數據類型能夠是不一樣的,可是單個列的數據類型是相同的。數據框的每一列或每一行均可以認爲是一個Series。DataFrame中面向行和麪向列的操做基本上是相同的,把行和列稱做軸(axis),DataFrame是按照軸進行操做的,axis=0表示行軸;axis=1 表示列軸。html
DataFrame對象既有行索引(index),也有列索引(columns),行索引也叫作行標籤,列索引也叫作列標籤/列名。在DataFrame的構造函數中,columns參數用於設置列索引,index用於設置行索引,都屬於Index類型。Index對象既可使用位置(整數)來表示,也可使用標籤(字符串)來表示,位置的起始值是0,標籤是經過列表來指定的。python
數據框的基礎構造函數是DataFrame,從array-like的結構中構造數據框:api
pandas.DataFrame(data=None, index=None, columns=None)
參數註釋:數組
除了基礎構造函數以外,還有 DataFrame.from_records 和
appDataFrame.from_dict
,專門用於從元組 和 字典中建立數據框。
一般狀況下,咱們使用pd.DataFrame()函數來建立數據框,固然也能夠根據須要使用pd.DataFrame.from_dict()函數來建立數據框。函數
1,使用字典來建立數據框spa
經過等長的字典來建立數據框,並能夠設置數據框的列名和行索引。字典存儲的是每列的數據:code
>>> data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'], ... 'year': [2000, 2001, 2002, 2001, 2002], ... 'pop': [1.5, 1.7, 3.6, 2.4, 2.9]} >>> row_index = ['one', 'two', 'three', 'four', 'five'] >>> col_names=['year', 'state', 'pop'] >>> df=pd.DataFrame(data,columns=col_names,index=row_index) year state pop one 2000 Ohio 1.5 two 2001 Ohio 1.7 three 2002 Ohio 3.6 four 2001 Nevada 2.4 five 2002 Nevada 2.9
2,使用列表(列表項是List)來建立數據框
htm
列表項是列表,把該列表轉換爲DataFrame:對象
students = [ ['jack', 34, 'Sydeny'] , ['Riti', 30, 'Delhi' ] , ['Aadi', 16, 'New York'] ] df = pd.DataFrame(students)
3,使用列表(列表項是元組)來建立數據框
列表項是元組,把該列表轉換爲DataFrame:
students = [ ('jack', 34, 'Sydeny') , ('Riti', 30, 'Delhi' ) , ('Aadi', 16, 'New York') ] df = pd.DataFrame(students)
4,使用from_dict建立數據框
data是一個字典結構,字典的Key是列名,Value是一個列表,經過這種格式建立數據框:
>>> data = {'col_1': [3, 2, 1, 0], 'col_2': ['a', 'b', 'c', 'd']} >>> pd.DataFrame.from_dict(data) col_1 col_2 0 3 a 1 2 b 2 1 c 3 0 d
數據框的屬性主要是索引、列名、數據類型和值,對於一下數據框
1,數據框的索引
經過index屬性來訪問數據框的行標籤,經過columns屬性訪問數據框的列標籤:
>>> df.index Index(['one', 'two', 'three', 'four', 'five'], dtype='object') >>> df.columns Index(['year', 'state', 'pop'], dtype='object')
2,數據類型
查看數據框各列的數據類型
>>> df.dtypes year int64 state object pop float64 dtype: object
查看數據框中某一列的數據類型:
df['col_name'].dtypes
df.col_name.dtypes
3,數據框的值
values屬性以Numpy數組形式顯示數據框的值:
>>> df.values array([[2000, 'Ohio', 1.5], [2001, 'Ohio', 1.7], [2002, 'Ohio', 3.6], [2001, 'Nevada', 2.4], [2002, 'Nevada', 2.9]], dtype=object)
4,數據框的軸和形狀
>>> df.axes [Index(['one', 'two', 'three', 'four', 'five'], dtype='object'), Index(['year', 'state', 'pop'], dtype='object')] >>> df.shape (5, 3)
經過爲一個新列賦值來向數據框中追加新列,新列始終處於列名序列的末尾:
>>> df['new']='a'
要制定新列的位置,須要使用insert()函數,該函數向數據框中插入一列,並制定新列的位置:
DataFrame.insert(self, loc, column, value)
參數註釋:
舉個例子,向df的末尾插入一列,列值都是a:
>>> df.insert(3,'new','a')
使用drop()函數來刪除行或列:
DataFrame.drop(self, labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')
參數註釋:
舉個例子,把df的列new刪除:
>>> df.drop(labels='new',axis=1)
向數據框的末尾追加數據行:
DataFrame.append(self, other, ignore_index=False, verify_integrity=False, sort=None)
也就是把一個結構相同的DataFrame追加到另外一個DataFrame的後面,把兩個DataFrame合併爲一個。
astype(dtype) 函數用於把數據框的列轉換爲特定的類型,dtype能夠是pandas支持的類型,也能夠是numpy.dtype,也能夠是Python類型:
把數據框的列改變爲字符串類型,str是python類型,'object'是pandas支持的字符串類型:
df['col_name'].astype(str) df['col_name'].astype('object')
其餘轉換類型的函數
使用Pandas提供的函數如to_numeric()、to_datetime()
參考文檔:
原文出處:https://www.cnblogs.com/ljhdo/p/10593914.html