首頁 > 軟體

python pandas庫讀取excel/csv中指定行或列資料

2022-02-28 19:02:04

引言

關鍵!!!!使用loc函數來查詢。

話不多說,直接演示:

有以下名為try.xlsx表:

1.根據index查詢

條件:首先匯入的資料必須的有index

或者自己新增吧,方法簡單,讀取excel檔案時直接加index_col

程式碼範例:

import pandas as pd                      #匯入pandas庫

excel_file = './try.xlsx'               #匯入excel資料
data = pd.read_excel(excel_file, index_col='姓名')        
#這個的index_col就是index,可以選擇任意欄位作為索引index,讀入資料
print(data.loc['李四'])

列印結果就是

部門 B
工資 6600
Name: 李四, dtype: object
(注意點:索引)

2.已知資料在第幾行找到想要的資料

假如我們的表中,有某個員工的工資資料為空了,那我們怎麼找到自己想要的資料呢。

程式碼如下:

for i in data.columns:
    for j in range(len(data)):
        if (data[i].isnull())[j]:
            bumen = data.iloc[j, [0]]                             #找出缺失值所在的部門
            data[i][j] = charuzhi(bumen)

原理很簡單,首先檢索全部的資料,然後我們可以用pandas中的iloc函數。上面的iloc[j, [2]]中j是具體的位置,【0】是你要得到的資料所在的column

3.根據條件查詢找到指定行資料

例如查詢A部門所有成員的的姓名和工資或者工資低於3000的人:

程式碼如下:

"""根據條件查詢某行資料"""
import pandas as pd            #匯入pandas庫

excel_file = './try.xlsx'        #匯入檔案
data = pd.read_excel(excel_file)      #讀入資料

print(data.loc[data['部門'] == 'A', ['姓名', '工資']])     #部門為A,列印姓名和工資
print(data.loc[data['工資'] < 3000, ['姓名','工資']])    #查詢工資小於3000的人

結果如下:

若要把這些資料獨立生成excel檔案或者csv檔案:

新增以下程式碼

"""匯出為excel或csv檔案"""
#單條件
dataframe_1 = data.loc[data['部門'] == 'A', ['姓名', '工資']]
#單條件
dataframe_2 = data.loc[data['工資'] < 3000, ['姓名', '工資']]
#多條件
dataframe_3 = data.loc[(data['部門'] == 'A')&(data['工資'] < 3000), ['姓名', '工資']]
#匯出為excel
dataframe_1.to_excel('dataframe_1.xlsx')
dataframe_2.to_excel('dataframe_2.xlsx')

4.找出指定列

data['columns']  #columns即你需要的欄位名稱即可
#注意這列的columns不能是index的名稱
#如果要列印index的話就data.index
data.columns  #與上面的一樣

以上全過程用到的庫:

pandas,xlrd , openpyxl

5.找出指定的行和指定的列

主要使用的就是函數iloc

data.iloc[:,:2]  #即全部行,前兩列的資料

逗號前是行,逗號後是列的範圍,很容易理解

6.在規定範圍內找出符合條件的資料

data.iloc[:10,:][data.工資>6000]

這樣即可找出前11行裡工資大於6000的所有人的資訊了

總結

到此這篇關於python pandas庫讀取excel/csv中指定行或列資料的文章就介紹到這了,更多相關python pandas庫讀取行或列內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com