index 屬性能夠指定 DataFrame 結構中的索引數組, columns 屬性能夠指定包含列名稱的行,html
而使用 name 屬性,經過對一個 DataFrame 實例進行 df 設置( df.index.name 和 df.columns.name)就能夠爲 DataFrame 結構指定行索引標籤和列索引標籤。
例如,對產品價格表指定行索引標籤和列索引標籤,其示例代碼以下:數組
In [24]: df.index.name = 'id' In [25]: df.columns.name = 'item In [26]: df Out[26]: item product price id 0 電視機 2300.0 1 空調 1980.0 2 洗衣機 780.0 3 電腦 NaN
爲 DataFrame 實例添加一列元素的方法就是指定 DataFrame 實例新列的名稱,併爲其賦值便可。例如,爲產品價格增長一個折扣率列,其示例代碼以下:數據結構
In [27]: df['discount']=[0.9,0.85,0.95,1] In [28]: df Out[28]: item product price discount id 0 電視機 2300.0 0.90 1 空調 1980.0 0.85 2 洗衣機 780.0 0.95 3 電腦 NaN 1.00
或者用 insert() 函數在指定位置添加一列元素。例如,在折扣率列後面,添加一列價格(「price」)乘以折扣率(「discount」)的實際價格(「Actual_price」)列,其示例代碼以下:函數
In [29]: df.insert(3,'Actual_price',df['price']*df['discount']) In [30]: df Out[30]: item product price discount Actual_price id 0 電視機 2300.0 0.90 2070.0 1 空調 1980.0 0.85 1683.0 2 洗衣機 780.0 0.95 741.0 3 電腦 NaN 1.00 NaN
爲 DataFrame 實例添加一行元素的方法就是使用 loc 屬性爲 DataFrame 實例新添加一行,併爲此行賦值便可。例如,爲產品價格增長一個手機產品的價格行,其示例代碼以下:spa
In [31]: df.loc['add_row'] = ['手機',1900,1,1900] In [32]: df Out[32]: item product price discount Actual_price id 0 電視機 2300.0 0.90 2070.0 1 空調 1980.0 0.85 1683.0 2 洗衣機 780.0 0.95 741.0 3 電腦 NaN 1.00 NaN add_row 手機 1900.0 1.00 1900.0
修改 DataFrame 對象中的一行元素,只須要使用 loc 屬性指定 DataFrame 實例中行索引,併爲此行賦值便可。例如,修改產品價格中電腦一行的數據,其示例代碼以下:code
In [33]: df.loc[3] = ['電腦',4500,1,4500] In [34]: df Out[34]: item product price iscount Actual_price id 0 電視機 2300.0 0.90 2070.0 1 空調 1980.0 0.85 1683.0 2 洗衣機 780.0 0.95 741.0 3 電腦 4500.0 1.00 4500.0 add_row 手機 1900.0 1.00 1900.0
修改 DataFrame 實例中的一列元素,只要指定 DataFrame 實例中列名稱,將要更新的一列元素存放到數組中,而後將此數組賦值給這一列便可。
例如,修改產品價格中的價格爲新價格 [3000,2300,560,5600],其示例代碼以下:htm
In [35]: df['price']=[3000,2300,560,5600,1880] In [36]: df Out[36]: item product price discount Actual_price id 0 電視機 3000 0.90 2070.0 1 空調 2300 0.85 1683.0 2 洗衣機 560 0.95 741.0 3 電腦 5600 1.00 4500.0 add_row 手機 1880 1.00 1900.0
修改一個元素,只須要選擇該元素,直接給其賦值便可。例如 df['discount'][1]=0.96。對象
若是要刪除一整列的全部數據,使用 del 命令。例如,刪除產品價格中的實際價格列,其示例代碼以下:blog
In [37]: del df['Actual_price'] In [38]: df Out[38]: item product price discou id 0 電視機 3000 0.90 1 空調 2300 0.85 2 洗衣機 560 0.95 3 電腦 5600 1.00 add_row 手機 1880 1.00
pop() 函數能夠將所選列從原數據塊中刪除,原數據塊再也不保留該列。例如,使用 pop() 函數刪除折扣率列,其示例代碼以下:索引
In [39]: df.pop('discount') Out[39]: id 0 0.90 1 0.85 2 0.95 3 1.00 add_row 1.00 Name: discount, dtype: float64
在 drop() 函數中有兩個參數,一個參數是 axis,當參數 axis=1 時,則刪除列元素;當 axis=0 時,則刪除行元素。還有一個參數是 inplace,當 inplace 爲 True 時,drop() 函數執行內部刪除,不返回任何值,原數據發生改變;當 inplace 爲 False 時,原數據不會發生改變,只是輸出新變量刪除。
例如,先添加 1 列折扣率列,而後再用 drop() 函數設置參數 axis=1 和 inplace=True 刪除折扣率的列元素,其示例代碼以下:
In [40]: df['discount']=0.94 In [41]: df.drop(['discount'],axis=1,inplace=True)
若是要刪除一行,則設置 axis=0,並指定刪除的行索引或行標籤。例如,刪除行標籤爲 add_row 的一行元素,其示例代碼以下:
In [42]: df.drop(['add_row'],axis=0,inplace=True)
若是要刪除多行,除了設置 axis=0 外,還要指定刪除的行索引或行標籤,例如,刪除第 1 行和第 3 行元素,其示例代碼以下:
In [43]: df.drop([0,2],axis=0,inplace=True)
對於 DataFrame 對象,也能夠經過指定條件來篩選元素。例如,篩選出產品價格中價格大於 2000 元的產品信息,其示例代碼以下:
In [44]: df[df['price']>2000] Out[44]: item product price id 0 電視機 3000 1 空調 2300 3 電腦 5600
例如,篩選出產品價格中全部元素都小於 2000 元的產品信息,其示例代碼以下:
In [45]: df[df<2000] Out[45]: item product price id 0 電視機 NaN 1 空調 NaN 2 洗衣機 560 3 電腦 NaN
返回的 DataFrame 對象中只包含知足條件的數字,各元素的位置保持不變,其餘不符合條件的元素替換成 NaN。
使用 isin() 函數能夠判斷給定的一列元素是否包含在 DataFrame 結構中,若是給定的元素包含在數據結構中,isin() 函數返回是 True,不然返回是 False。利用此函數能夠篩選 DataFrame 列中的數據。
例如判斷產品價格中是否存在「電腦」和 2300 這兩個元素,並返回知足條件的元素,其示例代碼以下:
In [46]: df[df.isin(['電腦',2300])] Out[46]: item product price id 0 NaN NaN 1 NaN 2300.0 2 NaN NaN 3 電腦 NaN
DataFrame 數據結構相似於表格數據結構,在處理表格數據時,經常會用到轉置操做,即將列變成行,行變成列。pandas 提供了一種簡單的轉置方法,就是經過調用T屬性得到 DataFrame 對象的轉置形式。
例如將產品價格數據結構進行轉置操做,其示例代碼以下:
In [47]: df.T Out[47]: id 0 1 2 3 item product 電視機 空調 洗衣機 電腦 price 3000 2300 560 5600