CSV文件:使用Python標準庫中的csv模塊,通過簡單的文本解析來讀取數據。
Excel文件:使用專門的庫(如openpyxl、xlrd)來解析復雜的文件格式,或者使用pandas庫來簡化讀取過程。
在進行文件讀取后的格式調整時,可設置顯示選項進行整理,在進行舉例前,先介紹需要引入的tabulate庫
tabulate庫主要用于:
- 格式化輸出:將復雜的數據結構(如列表、字典)轉換為易于閱讀的表格格式。
- 控制臺展示:在命令行界面中以表格形式展示數據,適用于腳本和命令行工具。
- 文件保存:將表格數據保存為文本文件,支持多種表格格式(如 Markdown、HTML、LaTeX 等)。
- 數據對比:用于比較不同數據集,通過表格形式直觀展示差異。
- 報告生成:在生成報告時,使用表格形式展示數據,使報告更加清晰和專業。
多種表格格式:支持多種表格格式,包括簡單的文本表格、Markdown、HTML、LaTeX 等。
自定義樣式:允許用戶自定義表格的樣式,包括表頭、分隔符、對齊方式等。
靈活性:可以處理各種數據結構,包括嵌套列表和字典。
舉例:(注:需要引入tabulate 庫)
pd.set_option(‘display.max_columns’, None) # 顯示所有列
pd.set_option(‘display.max_rows’, None) # 顯示所有行
pd.set_option(‘display.width’, None) # 自動調整寬度
pd.set_option(‘display.max_colwidth’, 100) # 設置最大列寬
pd.set_option(‘display.precision’, 2) # 設置小數精度
pd.set_option(‘display.unicode.ambiguous_as_wide’, True) # 處理中文對齊
pd.set_option(‘display.unicode.east_asian_width’, True) # 處理中文對齊
完整代碼如下:
解析文件為csv 文件,文件內容如下:
訂單編號 總金額 買家實際支付金額 收貨地址 訂單創建時間 訂單付款時間 退款金額
1 178.8 上海 2020/2/21 0:00 0.0
2 21 內蒙古自治區 2020/2/20 23:59 2020/2/21 0:00 0.0
3 37 安徽省 2020/2/20 23:59 0.0
4 157 湖南省 2020/2/20 23:58 2020/2/20 23:58 0.0
5 64.8 江蘇省 2020/2/20 23:57 2020/2/20 23:57 64.8
6 65.8 江蘇省 2020/2/21 23:57 2020/2/21 23:57 0
7 66.8 江蘇省 2020/2/22 23:57 2020/2/22 23:57 0
8 67.8 江蘇省 2020/2/23 23:57 0
9 68.8 江蘇省 2020/2/24 23:57 2020/2/24 23:57 0
10 69.8 江蘇省 2020/2/25 23:57 2020/2/25 23:57 0
11 70.8 江蘇省 2020/2/26 23:57 2020/2/26 23:57 0
import pytest
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import os
import warnings
from tabulate import tabulate # 添加tabulate庫
warnings.filterwarnings('ignore')# 設置顯示選項
pd.set_option('display.max_columns', None) # 顯示所有列
pd.set_option('display.max_rows', None) # 顯示所有行
pd.set_option('display.width', None) # 自動調整寬度
pd.set_option('display.max_colwidth', 100) # 設置最大列寬
pd.set_option('display.precision', 2) # 設置小數精度
pd.set_option('display.unicode.ambiguous_as_wide', True) # 處理中文對齊
pd.set_option('display.unicode.east_asian_width', True) # 處理中文對齊def display_aligned_dataframe(df):"""打印對齊的數據框"""# 創建一個樣式對象styled_df = df.style.set_properties(**{'text-align': 'left','padding': '10px'})# 設置表格邊框styled_df = styled_df.set_table_styles([{'selector': 'th','props': [('text-align', 'center'),('background-color', '#f0f0f0'),('padding', '10px')]},{'selector': 'td','props': [('text-align', 'left'),('padding', '10px')]}])return styled_df# 讀取CSV文件后使用新的顯示方式
file_path = 'E:\TestDome\Demo1.csv'
df = pd.read_csv(file_path, encoding="gbk")# 使用新的顯示方式
print("\n數據預覽:")
print(tabulate(df, headers='keys', tablefmt='grid', showindex=True)) # 使用tabulate對齊表頭和數據# 或者使用樣式化顯示
display_aligned_dataframe(df)