一文分享20個必學的Excel表格操作Python腳本
示例數(shù)據(jù) (bank_data.xlsx)
首先,我們創(chuàng)建一個示例的Excel文件bank_data.xlsx,并填充一些示例數(shù)據(jù)。
import pandas as pd
# 創(chuàng)建示例數(shù)據(jù)
data = {
'客戶ID': [1, 2, 3, 4, 5],
'姓名': ['張三', '李四', '王五', '趙六', '孫七'],
'聯(lián)系方式': ['13800000000', '13900000000', '13700000000', '13600000000', '13500000000'],
'賬戶余額': [10000.0, 20000.0, 15000.0, 30000.0, 25000.0],
'貸款類型': ['信用貸款', '房貸', '信用貸款', '車貸', '信用貸款'],
'貸款金額': [50000.0, 300000.0, 60000.0, 100000.0, 70000.0],
'利率': [5.0, 4.5, 5.2, 4.8, 5.1],
'貸款期限(年)': [3, 20, 4, 5, 3]}
# 保存到Excel文件
df = pd.DataFrame(data)
df.to_excel('bank_data.xlsx', index=False)
請先運行上面的代碼以生成示例數(shù)據(jù)文件bank_data.xlsx。
1. 讀取Excel文件
- 使用場景:從Excel中加載數(shù)據(jù)進行后續(xù)處理。
- 代碼解釋:使用pandas.read_excel函數(shù)讀取Excel文件。
示例代碼:
import pandas as pd
# 讀取Excel文件
df = pd.read_excel('bank_data.xlsx')
print(df.head())
2. 寫入Excel文件
- 使用場景:將處理后的數(shù)據(jù)保存到新的Excel文件。
- 代碼解釋:使用DataFrame.to_excel方法寫入Excel文件。
示例代碼:
import pandas as pd
# 讀取現(xiàn)有數(shù)據(jù)
df = pd.read_excel('bank_data.xlsx')
# 寫入新的Excel文件
df.to_excel('processed_bank_data.xlsx', index=False)
3. 更新特定單元格
- 使用場景:修改Excel中的某個具體值。
- 代碼解釋:通過索引定位單元格并賦新值。
示例代碼:
import pandas as pd
# 讀取現(xiàn)有數(shù)據(jù)
df = pd.read_excel('bank_data.xlsx')
# 更新第一個客戶的賬戶余額
df.at[0, '賬戶余額'] = 12000.0
# 保存更新后的數(shù)據(jù)
df.to_excel('updated_bank_data.xlsx', index=False)
4. 添加新的工作表
- 使用場景:向現(xiàn)有的Excel文件中添加一個新的工作表。
- 代碼解釋:使用openpyxl庫來操作Excel文件。
示例代碼:
from openpyxl import load_workbook
# 加載現(xiàn)有工作簿
wb = load_workbook('bank_data.xlsx')
# 創(chuàng)建新的工作表
ws = wb.create_sheet(title="新工作表")
# 保存工作簿
wb.save('bank_data_with_new_sheet.xlsx')
5. 刪除工作表
- 使用場景:刪除Excel文件中的指定工作表。
- 代碼解釋:使用openpyxl庫刪除工作表。
示例代碼:
from openpyxl import load_workbook
# 加載現(xiàn)有工作簿
wb = load_workbook('bank_data.xlsx')
# 刪除指定的工作表
if '新工作表' in wb.sheetnames:
del wb['新工作表']
# 保存工作簿
wb.save('bank_data_deleted_sheet.xlsx')
6. 復制工作表
- 使用場景:復制Excel文件中的指定工作表。
- 代碼解釋:使用openpyxl庫復制工作表。
示例代碼:
from openpyxl import load_workbook
# 加載現(xiàn)有工作簿
wb = load_workbook('bank_data.xlsx')
# 復制指定的工作表
source = wb['Sheet1']
target = wb.copy_worksheet(source)
target.title = "復制的工作表"
# 保存工作簿
wb.save('bank_data_copied_sheet.xlsx')
7. 重命名工作表
- 使用場景:重命名Excel文件中的指定工作表。
- 代碼解釋:使用openpyxl庫重命名工作表。
示例代碼:
from openpyxl import load_workbook
# 加載現(xiàn)有工作簿
wb = load_workbook('bank_data.xlsx')
# 重命名指定的工作表
sheet = wb['Sheet1']
sheet.title = "重命名的工作表"
# 保存工作簿
wb.save('bank_data_renamed_sheet.xlsx')
8. 查找特定值
- 使用場景:在Excel文件中查找特定值。
- 代碼解釋:使用pandas庫查找特定值。
示例代碼:
import pandas as pd
# 讀取現(xiàn)有數(shù)據(jù)
df = pd.read_excel('bank_data.xlsx')
# 查找特定值
result = df[df['姓名'] == '張三']
print(result)
9. 篩選數(shù)據(jù)
- 使用場景:根據(jù)條件篩選數(shù)據(jù)。
- 代碼解釋:使用pandas庫篩選數(shù)據(jù)。
示例代碼:
import pandas as pd
# 讀取現(xiàn)有數(shù)據(jù)
df = pd.read_excel('bank_data.xlsx')
# 篩選出貸款金額大于50000的數(shù)據(jù)
filtered_df = df[df['貸款金額'] > 50000]
# 打印篩選結果
print(filtered_df)
10. 排序數(shù)據(jù)
- 使用場景:對數(shù)據(jù)進行排序。
- 代碼解釋:使用pandas庫對數(shù)據(jù)進行排序。
示例代碼:
import pandas as pd
# 讀取現(xiàn)有數(shù)據(jù)
df = pd.read_excel('bank_data.xlsx')
# 按賬戶余額降序排序
sorted_df = df.sort_values(by='賬戶余額', ascending=False)
# 打印排序結果
print(sorted_df)
11. 數(shù)據(jù)分組與匯總
- 使用場景:對數(shù)據(jù)進行分組并計算匯總。
- 代碼解釋:使用pandas庫進行分組和匯總。
示例代碼:
import pandas as pd
# 讀取現(xiàn)有數(shù)據(jù)
df = pd.read_excel('bank_data.xlsx')
# 按貸款類型分組并計算貸款金額總和
grouped_df = df.groupby('貸款類型')['貸款金額'].sum()
# 打印分組匯總結果
print(grouped_df)
12. 合并單元格
- 使用場景:合并Excel文件中的多個單元格。
- 代碼解釋:使用openpyxl庫合并單元格。
示例代碼:
from openpyxl import load_workbook
# 加載現(xiàn)有工作簿
wb = load_workbook('bank_data.xlsx')
ws = wb.active
# 合并單元格A1到C1
ws.merge_cells('A1:C1')
# 保存工作簿
wb.save('bank_data_merged_cells.xlsx')
13. 設置單元格格式
- 使用場景:設置Excel文件中單元格的格式。
- 代碼解釋:使用openpyxl庫設置單元格格式。
示例代碼:
from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment
# 加載現(xiàn)有工作簿
wb = load_workbook('bank_data.xlsx')
ws = wb.active
# 設置A1單元格的字體和對齊方式
cell = ws['A1']
cell.font = Font(bold=True, color="FF0000")
cell.alignment = Alignment(horizontal='center', vertical='center')
# 保存工作簿
wb.save('bank_data_formatted_cell.xlsx')
14. 插入圖表
- 使用場景:在Excel文件中插入圖表。
- 代碼解釋:使用openpyxl庫插入圖表。
示例代碼:
import pandas as pd
from openpyxl import load_workbook
from openpyxl.chart import BarChart, Reference
# 讀取現(xiàn)有數(shù)據(jù)
df = pd.read_excel('bank_data.xlsx')
# 保存到臨時文件
df.to_excel('temp_bank_data.xlsx', index=False)
# 加載現(xiàn)有工作簿
wb = load_workbook('temp_bank_data.xlsx')
ws = wb.active
# 創(chuàng)建柱狀圖
chart = BarChart()
data = Reference(ws, min_col=4, min_row=1, max_row=len(df) + 1, max_col=4)
categories = Reference(ws, min_col=1, min_row=2, max_row=len(df) + 1)
chart.add_data(data, titles_from_data=True)
chart.set_categories(categories)
chart.title = "賬戶余額柱狀圖"
ws.add_chart(chart, "F1")
# 保存工作簿
wb.save('bank_data_with_chart.xlsx')
15. 計算總和、平均值等
- 使用場景:計算數(shù)據(jù)的總和、平均值等統(tǒng)計信息。
- 代碼解釋:使用pandas庫計算統(tǒng)計信息。
示例代碼:
import pandas as pd
# 讀取現(xiàn)有數(shù)據(jù)
df = pd.read_excel('bank_data.xlsx')
# 計算賬戶余額的總和和平均值
total_balance = df['賬戶余額'].sum()
average_balance = df['賬戶余額'].mean()
# 打印結果
print(f"賬戶余額總和: {total_balance}")
print(f"賬戶余額平均值: {average_balance}")
16. 使用條件格式
- 使用場景:根據(jù)條件設置單元格格式。
- 代碼解釋:使用openpyxl庫設置條件格式。
示例代碼:
from openpyxl import load_workbook
from openpyxl.formatting.rule import CellIsRule
from openpyxl.styles import PatternFill
# 加載現(xiàn)有工作簿
wb = load_workbook('bank_data.xlsx')
ws = wb.active
# 定義條件格式規(guī)則
red_fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
rule = CellIsRule(operator='lessThan', formula=['15000'], fill=red_fill)
# 應用條件格式
ws.conditional_formatting.add('D2:D6', rule)
# 保存工作簿
wb.save('bank_data_conditional_format.xlsx')
17. 拆分合并的單元格
- 使用場景:拆分Excel文件中已經合并的單元格。
- 代碼解釋:使用openpyxl庫拆分合并的單元格。
示例代碼:
from openpyxl import load_workbook
# 加載現(xiàn)有工作簿
wb = load_workbook('bank_data.xlsx')
ws = wb.active
# 拆分A1到C1的合并單元格
ws.unmerge_cells('A1:C1')
# 保存工作簿
wb.save('bank_data_unmerged_cells.xlsx')
18. 清除內容或樣式
- 使用場景:清除Excel文件中單元格的內容或樣式。
- 代碼解釋:使用openpyxl庫清除內容或樣式。
示例代碼:
from openpyxl import load_workbook
# 加載現(xiàn)有工作簿
wb = load_workbook('bank_data.xlsx')
ws = wb.active
# 清除A1單元格的內容
ws['A1'].value = None
# 清除A1單元格的樣式
ws['A1'].font = None
ws['A1'].fill = None
ws['A1'].border = None
ws['A1'].alignment = None
ws['A1'].number_format = None
ws['A1'].protection = None
# 保存工作簿
wb.save('bank_data_cleared_content_and_style.xlsx')
19. 自動調整列寬
- 使用場景:自動調整Excel文件中列的寬度。
- 代碼解釋:使用openpyxl庫自動調整列寬。
示例代碼:
from openpyxl import load_workbook
# 加載現(xiàn)有工作簿
wb = load_workbook('bank_data.xlsx')
ws = wb.active
# 自動調整所有列的寬度
for col in ws.columns:
max_length = 0
column = col[0].column_letter # 獲取列字母
for cell in col:
try:
if len(str(cell.value)) > max_length:
max_length = len(cell.value)
except:
pass
adjusted_width = (max_length + 2)
ws.column_dimensions[column].width = adjusted_width
# 保存工作簿
wb.save('bank_data_auto_adjusted_columns.xlsx')
20. 保存文件
- 使用場景:保存處理后的Excel文件。
- 代碼解釋:使用pandas庫保存處理后的數(shù)據(jù)。
示例代碼:
import pandas as pd
# 讀取現(xiàn)有數(shù)據(jù)
df = pd.read_excel('bank_data.xlsx')
# 保存處理后的數(shù)據(jù)
df.to_excel('final_processed_bank_data.xlsx', index=False)
到此這篇關于一文分享20個必學的Excel表格操作Python腳本的文章就介紹到這了,更多相關Python操作Excel表格腳本內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python飛機大戰(zhàn)pygame游戲之敵機出場實現(xiàn)方法詳解
這篇文章主要介紹了python飛機大戰(zhàn)pygame游戲之敵機出場實現(xiàn)方法,結合實例形式詳細分析了Python使用pygame模塊實現(xiàn)飛機大戰(zhàn)游戲中敵機出場相關實現(xiàn)技巧,需要的朋友可以參考下2019-12-12
在python中利用try..except來代替if..else的用法
今天小編就為大家分享一篇在python中利用try..except來代替if..else的用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
springboot整合單機緩存ehcache的實現(xiàn)
本文主要介紹了springboot整合單機緩存ehcache的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02

