Python處理Excel資料-pandas篇
非常適用于大量資料的拼接、清洗、篩選及分析
在計算機編程中,pandas是Python編程語言的用于資料操縱和分析的軟體庫,特別是,它提供操縱數值表格和時間序列的資料結構和運算操作,它的名字衍生自術語“面板資料”(panel data),這是計量經濟學的資料集術語,它們包括了對同一個體的在多個時期上的觀測,它的名字是短語“Python data analysis”自身的文字游戲,
目錄
- Python處理Excel資料-pandas篇
- 一、安裝環境
- 1、打開以下檔案夾(個人路徑會有差異):
- 2、按住左Shift右鍵點擊空白處,選擇【在此處打開Powershell視窗(s)】
- 3、輸入以下代碼通過Pip進行安裝Pandas庫
- 二、資料的新建、保存與整理
- 1、新建資料保存到Excel
- 2、讀取txt檔案,將內容保存到Excel(參考B站UP 孫興華示例檔案)
- 3、讀取Excel及DataFrame的使用方式
- 三、資料排序與查詢
- 1、排序
- 例1:按語文分數排序降序,數學升序,英語降序
- 例2:按索引進行排序
- 2、查詢
- 單條件查詢
- 多條件查詢
- 使用資料區間范圍進行查詢
- 使用條件運算式進行查詢
一、安裝環境
1、打開以下檔案夾(個人路徑會有差異):
C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Scripts
2、按住左Shift右鍵點擊空白處,選擇【在此處打開Powershell視窗(s)】

![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-kRJiEqCN-1608030817083)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201215191141324.png)]](https://img.uj5u.com/2020/12/17/205834171143141.png)
3、輸入以下代碼通過Pip進行安裝Pandas庫
./pip install pandas
./pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MgtI8yQm-1608030817086)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201215191206646.png)]](https://img.uj5u.com/2020/12/17/205834171143142.png)
安裝完成后會有提示:Successfully installed pandas
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-lsHFFWKv-1608030817089)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201215191214525.png)]](https://img.uj5u.com/2020/12/17/205834171143143.png)
二、資料的新建、保存與整理
1、新建資料保存到Excel
import pandas as pd
path = 'E:\python\測驗\測驗檔案.xlsx'
data= pd.DataFrame({'序號':[1,2,3],'姓名':['張三','李四','王五']})
data= data.set_index('序號') #設定索引列為'序號'列
data.to_excel(path)
2、讀取txt檔案,將內容保存到Excel(參考B站UP 孫興華示例檔案)
Txt檔案:
E:\python\練習.txt
男,楊過,19,13901234567,終南山古墓,2000/1/1
女,小龍女,25,13801111111,終南山古墓,2000/1/2
男,郭靖,40,13705555555,湖北襄陽,2020/1/1
女,黃蓉,35,13601111111,湖北襄陽,2000/1/4
男,張無忌,18,13506666666,明教,2000/1/5
女,周芷若,17,13311111111,明教,2000/1/6
女,趙敏,17,18800000000,明教,2000/1/7
import pandas as pd
path = r'E:\python\練習.txt'
data = pd.read_csv(path,header=None,names=['性別','姓名','年齡','地址','號碼','時間'])
data.to_excel( r'E:\python\練習.xlsx') #將資料儲存為Excel檔案
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-3ndoK56g-1608030817092)(Pandas%208148b0742ba4410b86e80c5189b73f3e/Untitled%204.png)]](https://img.uj5u.com/2020/12/17/205834171143144.png)
3、讀取Excel及DataFrame的使用方式
import pandas as pd
path = 'E:\python\測驗\\資料查詢.xlsx'
data = pd.DataFrame(pd.read_excel(path,sheet_name='Left',header=1,converters={'A': str})) # converters={'A': str} 設定A列格式為文本
data.index # 查看索引
data.values # 查看數值
data.sort_index() # 按索引排序
data.sort_values() # 按數值排序
data.head( 5 ) # 查看前5行
data.tail( 3 ) # 查看后3行
data.values # 查看數值
datashape # 查看行數、列數
data.isnull() # 查找data中出現的空值
data.unique() # 查看唯一值
data.columns # 查看data的列名
data.sort_index() # 索引排序
data.sort_values() # 值排序
pd.merge(data1,data2) # 合并,以下為左連接
pd.merge(data1,data2,on=[a],how='left')
pd.concat([data1,data2]) # 合并,與merge的區別,自查**(特別注意要使用[])**
pd.pivot_table( data ) # 用df做data透視表(類似于Excel的數透)
data.reset_index() # 修改、洗掉原有索引
data.reindex() # 重置索引,如下示例
data=data.reindex(columns=['商品名稱', '規格', '對應車型類別', '備注', '新增的一列'], fill_value='新增的一列要填的值')
a=data['x'] # 取列名為'x'的列,格式為series
b=data[['x']] # 取列名為'x'的列,格式為Dataframe
c=data[['w','z']] # 取多列時需要用Dataframe的格式
data.loc['A'] # 取行名為'A'的行
data.loc[:,['x','z'] ] # 表示選取所有的行以及columns為x,z的列
data['name'].values # 取列名為'name'的列的值(取出來的是array而不是series)取單行后是一個Series,Series有index而無columns,可以用name來獲取單列的索引
data.head(4) # 取頭四行
data.tail(3) # 取尾三行
**data= data.iloc[2:, 2:20] # 選擇2行開始、2-11列**
[m, n] = data.shape # 對m,n進行復制,m等于最大行數 n等于最大列數
data.notnull() # 非空值
data.dropna() # 洗掉空值
data.dropna() # 洗掉有空值的行
data.dropna(axis=1) # 洗掉有空值的列
data.dropna(how='all') # 洗掉所有值為Nan的行
data.dropna(thresh=2) # 至少保留兩個非缺失值
data.strip() # 去除串列中的所有空格與換行符號
data.fillna(0) # 將空值填充0
data.replace(1, -1) # 將1替換成-1
data.fillna(100) # 填充缺失值為100
data.fillna({'語文':100,'數學':100,}) # 不同列填充不同值
data.fillna(method='ffill') # 將空值填充為上一個值
data.fillna(method='bfill') # 將空值填充下一個值
data.fillna(method='bfill',limit=1) # 將空值填充下一個值,限制填充數量為1
三、資料排序與查詢
1、排序
例1:按語文分數排序降序,數學升序,英語降序
import pandas as pd
path = 'c:/pandas/排序.xlsx'
data= pd.read_excel(path ,index_col='序號')
data.sort_values(by=['語文','數學','英語'],inplace=True,ascending=[False,True,False])
print(data)
例2:按索引進行排序
import pandas as pd
path = 'c:/pandas/排序.xlsx'
data = pd.read_excel(路徑,index_col='序號')
data.sort_index(inplace=True)
print(data)
2、查詢
單條件查詢
import pandas as pd
path = 'c:/pandas/篩選.xlsx'
data = pd.read_excel(path ,index_col='出生日期')
print(data.loc['1983-10-27','語文'])
多條件查詢
import pandas as pd
path = 'c:/pandas/篩選.xlsx'
data = pd.read_excel(path ,index_col='出生日期')
print(data.loc['1983-10-27',['語文','數學','英語']])
使用資料區間范圍進行查詢
import pandas as pd
path = 'c:/pandas/篩選.xlsx'
data = pd.read_excel(path,index_col='出生日期')
print(data.loc['1983-10-27':'1990-12-31',['語文','數學','英語']])
使用條件運算式進行查詢
import pandas as pd
path = 'c:/pandas/篩選.xlsx'
data = pd.read_excel(路徑,index_col='出生日期')
print(data.loc[(data['語文'] > 60) & (data['英語'] < 60),:]) #這里的 ,: 指的是列取全部
今天的分享到此就結束啦,后續還會繼續更新~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/236084.html
標籤:python
下一篇:華中農業大學python實驗題
