pandas DataFrame的新增行列,修改、刪除、篩選、判斷元素以及轉置操做

1)指定行索引和列索引標籤

    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

2) 添加一列元素

爲 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

3) 添加一行元素

爲 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

4) 修改一行元素

修改 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

5) 修改一列元素或一個元素

修改 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。對象

6) 刪除元素

 6.1) 使用 del 命令刪除一列元素

若是要刪除一整列的全部數據,使用 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

6.2) 使用 pop() 函數刪除一列元素

  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

 6.3) 使用 drop() 函數刪除一列元素或刪除一行元素

在 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)

7) 篩選元素

對於 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。

8)判斷元素是否存在

使用 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

9) DataFrame 轉置

DataFrame 數據結構相似於表格數據結構,在處理表格數據時,經常會用到轉置操做,即將列變成行,行變成列。pandas 提供了一種簡單的轉置方法,就是經過調用T屬性得到 DataFrame 對象的轉置形式。

例如將產品價格數據結構進行轉置操做,其示例代碼以下:

In [47]:  df.T
Out[47]:
               id      0     1       2         3
              item
            product   電視機   空調   洗衣機      電腦
            price     3000  2300      560       5600
相關文章
相關標籤/搜索