程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【月度總結】數據庫&Python&Excel_202207

編輯:Python

Excel

1、maxifs()函數 maxifs函數返回一組給定條件或標准指定的單元格中的最大值。 maxifs(數據區域,條件區域,條件) 技巧: 選取某個分類中占比最大的值作為這個分類的唯一值。比如:選取sku編碼,單價占比最大的,作為sku編碼的唯一價格。 1、使用EXcel來解決:
  • 首先數據清洗,計算sku編碼占比。只選擇某個店鋪某個月份的數據,並提取sku編碼,單價,將所有數據去重,使用countifs()函數計數,再計算占比,字段呈現:sku編碼,單價,個數,個數占比。
  • 其次找出sku占比的最大值。提取sku編碼去重,使用maxifs()函數,找出最大的占比值,字段呈現:sku編碼,最大占比。
  • 找出sku編碼占比最大的單價。字段:使用vlookup()函數,合並sku編碼&最大占比,查找單價,字段呈現:sku編碼,單價。
2、使用Python來解決

數據庫

1、取今日十一點這個時間,使用dateadd()函數

select  DATEADD(hour,11,convert(varchar(100),GETDATE(),23))  as '時間'

Python

1、取某個字段中的某部分

        以取商品名稱中【】裡面的內容為例,商品名稱的格式例如:成品台歷【A236-未來可期】
  • 使用正則匹配   
data1['商品名稱'].map(lambda x:re.findall("【(.*?)】",x)[0] if len(re.findall("【(.*?)】",x)) > 0 else '無')
  • 使用split()拆分
data1['商品名稱'].map(lambda x :(x.split('【')[1]).split('】')[0] if len((x.split('【')[1]).split('】')) >0 else '無')

2、使用np.where()函數對字段判斷

np.where(condition,x,y)
滿足條件(condition),輸出x,不輸出滿足y。 有以下兩種寫法: 其一:
data1['商品分類'] =np.where(data1['商品最小分類'] =='環裝台歷' ,'定制台歷',np.where(data1['商品最小分類'] == '無環台歷','定制台歷',np.where(data1['商品最小分類'] == '商務台歷','定制台歷','成品台歷')))
其二:
data1['商品分類'] = np.where(data1['商品最小分類'].isin(['環裝台歷','無環台歷','商務台歷']) ,'定制台歷','成品台歷')

3、對數據中的某些行進行處理

data1.loc[data1['商品分類'] == '定制台歷','款式'] = '無'

4、根據兩列數據,對另外一列賦值

在修改郵件過程中遇到的最大問題:是對於款式的定義 最終實現的代碼為(注意:寫自定義的函數用來判斷值就可以了):
def style(x,y):    if x =='成品台歷':        if len(re.findall("【(.*?)】",y)[0]) >0:            return  re.findall("【(.*?)】",y)[0]        else:            return '無'    else:        return '無'data1['款式'] = data1.apply(lambda x:style(x.商品分類,x.商品名稱),axis=1)

5、將各數據源合並在一起(縱向)

Data_y = pd.concat([Data1, Data3])  # 將各來源的數據合並在一起

6、將幾個DataFrame橫向拼接

data_re = data_zy.join(data_dy).join(data_['name']) # 將幾個DataFrame橫向拼接

7、構建空的DataFrame

data2 = pd.DataFrame(columns = [['name','導演','主演']])  # 定義一個空的DataFrame,並定義列名

8、重命名列名

df.columns = ['name','導演','主演']

9、不輸出,警告信息

import warningswarnings.filterwarnings('ignore')

10、四分位數

q1 = data[col].quantile(q = 0.25)  # 下四分位數q3 = data[col].quantile(q = 0.75)  # 上四分位數q = q3 - q1  #四分位差

11、header = 0

header = 0 表示,第一行數據,而不是文件的第一行。

12、箱線圖構成

    箱線圖是由5部分組成,分別是最小值、中位數、最大值和兩個四分位數。第一個”四分位數Q1“:又稱下四分位數,等於該樣本中所有數值由小到大排列後第25%的數字。中位數F:又稱第二四分位數(Q2),又稱“中位數”,等於該樣本中所有數值由小到大排列後第50%的數字。第三四分位數:又稱“上四分位數”,等於該樣本中所有數值由小到大排列後第75%的數字。

13、bokeh的官方參考網站Configuring plot tools — Bokeh 2.4.3 Documentation

#圖表的畫法p  = figure(plot_width = 600,plot_height = 400)p.circle(df.index,df['A'],color = 'green',size = 10,alpha = 0.5)#### 框線p.outline_line_width = 7 #邊框線寬p.outline_line_alpha = 0.3 #邊框透明度p.outline_line_color = 'navy'   #邊框線顏色# 繪圖背景p.background_fill_color = 'yellow'   # 繪圖背景顏色p.background_fill_alpha = 0.5   # 繪圖背景透明度#外邊界設置p.border_fill_color = "red"  # 外邊界背景p.min_border_left = 80  # 外邊界背景 -----左邊寬度p.min_border_right= 80  # 外邊界背景 -----右邊寬度p.min_border_top = 10  # 外邊界背景 -----上寬度p.min_border_bottom = 10  # 外邊界背景 -----下寬度#軸線的設置# 設置X軸線:標簽,線寬,軸線顏色p.xaxis.axis_label  ='Temp'p.xaxis.axis_label_text_font_style ="FangSong"  #設置字體p.xaxis.axis_label_standoff = 30 # 設置偏移距離p.xaxis.axis_line_width = 3p.xaxis.axis_line_color = "red"# 設置y軸線:標簽,字體顏色,字體角度p.yaxis.axis_label  ='PPPP'p.yaxis.major_label_text_color = "red"p.yaxis.major_label_orientation = "vertical"p.axis.minor_tick_in = 5   # 刻度往繪圖區域內延伸長度p.axis.minor_tick_out = 3  # 刻度往繪圖區域外延伸長度p.xaxis.bounds =(2,4)  #設置軸線范圍####格網設置p.xgrid.grid_line_color  =None # 顏色設置,None時則不顯示p.ygrid.grid_line_alpha = 0.8  # 設置透明度p.ygrid.grid_line_dash  = [6,4]  # dash--->通過設置間隔來做虛線#設置次軸線  minor_linep.xgrid.minor_grid_line_color = 'navy'p.xgrid.minor_grid_line_alpha = 0.5  ####格網顏色填充p.ygrid.band_fill_alpha = 0.1p.ygrid.band_fill_color = 'navy'shw(p)p  = figure(plot_width = 600,plot_height = 400)#圖例設置x = np.linspace(0,4*np.pi,100)y = sin(x)

14、bokeh輔助矩形:

# 輔助標注 - 矩形from bokeh.models.annotations import BoxAnnotation# 導入BoxAnnotation模塊center = BoxAnnotation(top=0.6, bottom=-0.3, left=7, right=12,  # 設置矩形四邊位置                       fill_alpha=0.1, fill_color='navy'        # 設置透明度、顏色                      )p.add_layout(center)# 繪制輔助矩形show(p)

15、轉字典格式:

exports = {'fruits' : fruits,           '2015'   : [2, 1, 4, 3, 2, 4],           '2016'   : [5, 3, 4, 2, 4, 6],           '2017'   : [3, 2, 4, 4, 5, 3]}

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved