# C:\Users\lenovo\Desktop\總結\Python # 讀取 Excel 文件並進行篩選 import pandas as pd # 設置列對齊 pd.set_option("display.unicode.ambiguous_as_wide",True) pd.set_option("display.unicode.east_asian_width",True) # 讀取工號姓名時段交易額,使用默認索引 dataframe = pd.read_excel(r'C:\Users\lenovo\Desktop\總結\Python\超市營業額.xlsx', usecols = ['工號','姓名','時段','交易額']) # 打印前十行數據 dataframe[:10] ''' 工號 姓名 時段 交易額 0 1001 張三 9:00-14:00 2000 1 1002 李四 14:00-21:00 1800 2 1003 王五 9:00-14:00 800 3 1004 趙六 14:00-21:00 1100 4 1005 周七 9:00-14:00 600 5 1006 錢八 14:00-21:00 700 6 1006 錢八 9:00-14:00 850 7 1001 張三 14:00-21:00 600 8 1001 張三 9:00-14:00 1300 9 1002 李四 14:00-21:00 1500 ''' # 跳過 1 2 4 行,以第一列姓名為索引 dataframe2 = pd.read_excel(r'C:\Users\lenovo\Desktop\總結\Python\超市營業額.xlsx', skiprows = [1,2,4], index_col = 1) '''注:張三李四趙六的第一條數據跳過 工號 日期 時段 交易額 櫃台 姓名 王五 1003 20190301 9:00-14:00 800 食品 周七 1005 20190301 9:00-14:00 600 日用品 錢八 1006 20190301 14:00-21:00 700 日用品 錢八 1006 20190301 9:00-14:00 850 蔬菜水果 張三 1001 20190302 14:00-21:00 600 蔬菜水果 ''' # 篩選符合特定條件的數據 # 讀取超市營業額數據 dataframe = pd.read_excel(r'C:\Users\lenovo\Desktop\總結\Python\超市營業額.xlsx') # 查看 5 到 10 的數據 dataframe[5:11] ''' 工號 姓名 日期 時段 交易額 櫃台 5 1006 錢八 20190301 14:00-21:00 700 日用品 6 1006 錢八 20190301 9:00-14:00 850 蔬菜水果 7 1001 張三 20190302 14:00-21:00 600 蔬菜水果 8 1001 張三 20190302 9:00-14:00 1300 化妝品 9 1002 李四 20190302 14:00-21:00 1500 化妝品 10 1003 王五 20190302 9:00-14:00 1000 食品 ''' # 查看第六行的數據 dataframe.iloc[5] ''' 工號 1006 姓名 錢八 時段 14:00-21:00 交易額 700 Name: 5, dtype: object ''' dataframe[:5] ''' 工號 姓名 時段 交易額 0 1001 張三 9:00-14:00 2000 1 1002 李四 14:00-21:00 1800 2 1003 王五 9:00-14:00 800 3 1004 趙六 14:00-21:00 1100 4 1005 周七 9:00-14:00 600 ''' # 查看第 1 3 4 行的數據 dataframe.iloc[[0,2,3],:] ''' 工號 姓名 時段 交易額 0 1001 張三 9:00-14:00 2000 2 1003 王五 9:00-14:00 800 3 1004 趙六 14:00-21:00 1100 ''' # 查看第 1 3 4 行的第 1 2 列 dataframe.iloc[[0,2,3],[0,1]] ''' 工號 姓名 0 1001 張三 2 1003 王五 3 1004 趙六 ''' # 查看前五行指定,姓名、時段和交易額的數據 dataframe[['姓名','時段','交易額']][:5] ''' 姓名 時段 交易額 0 張三 9:00-14:00 2000 1 李四 14:00-21:00 1800 2 王五 9:00-14:00 800 3 趙六 14:00-21:00 1100 4 周七 9:00-14:00 600 ''' dataframe[:5][['姓名','時段','交易額']] ''' 姓名 時段 交易額 0 張三 9:00-14:00 2000 1 李四 14:00-21:00 1800 2 王五 9:00-14:00 800 3 趙六 14:00-21:00 1100 4 周七 9:00-14:00 600 ''' # 查看第 2 4 5 行 姓名,交易額 數據 loc 函數 dataframe.loc[[1,3,4],['姓名','交易額']] ''' 姓名 交易額 1 李四 1800 3 趙六 1100 4 周七 600 ''' # 查看第四行的姓名數據 dataframe.at[3,'姓名'] # '趙六' # 查看交易額大於 1700 的數據 dataframe[dataframe['交易額'] > 1700] ''' 工號 姓名 時段 交易額 0 1001 張三 9:00-14:00 2000 1 1002 李四 14:00-21:00 1800 ''' # 查看交易額總和 dataframe.sum() ''' 工號 17055 姓名 張三李四王五趙六周七錢八錢八張三張三李四王五趙六周七錢八李四王五張三... 時段 9:00-14:0014:00-21:009:00-14:0014:00-21:009:00... 交易額 17410 dtype: object ''' # 某一時段的交易總和 dataframe[dataframe['時段'] == '14:00-21:00']['交易額'].sum() # 8300 # 查看張三在下午14:00之后的交易情況 dataframe[(dataframe.姓名 == '張三') & (dataframe.時段 == '14:00-21:00')][:10] ''' 工號 姓名 時段 交易額 7 1001 張三 14:00-21:00 600 ''' # 查看日用品的銷售總額 # dataframe[dataframe['櫃台'] == '日用品']['交易額'].sum() # 查看張三總共的交易額 dataframe[dataframe['姓名'].isin(['張三'])]['交易額'].sum() # 5200 # 查看交易額在 1500~3000 之間的記錄 dataframe[dataframe['交易額'].between(1500,3000)] ''' 工號 姓名 時段 交易額 0 1001 張三 9:00-14:00 2000 1 1002 李四 14:00-21:00 1800 9 1002 李四 14:00-21:00 1500 '''
2020-05-07