日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python 自由定制表格的實現示例

瀏覽:34日期:2022-08-01 17:17:31

很多開發者說自從有了 Python/Pandas,Excel 都不怎么用了,用它來處理與可視化表格非常快速。

下面我來舉幾個例子。

1. 刪除重復行和空行

我們直接用dict.fromkeys的方法把當前的數據轉為字典,默認的值為None因為用不到,也就無所謂了。然后我們再用list直接對結果進行類型轉換,轉換為list。

In [135]:for row in rows4: print(row)(’name’, ’address’)(’tom li’, ’beijing’)(’tom li’, ’beijing’)(’’,)(’mary wang’, ’shandong’)(’mary wang’, ’shandong’)(’’,)(’de8ug’, ’guangzhou’)In [148]:dict.fromkeys(rows4)Out[148]:{(’name’, ’address’): None, (’tom li’, ’beijing’): None, (’’,): None, (’mary wang’, ’shandong’): None, (’de8ug’, ’guangzhou’): None}In [137]:list(dict.fromkeys(rows4))Out[137]:[(’name’, ’address’), (’tom li’, ’beijing’), (’’,), (’mary wang’, ’shandong’), (’de8ug’, ’guangzhou’)]

這時候,重復數據直接去掉了,注意我們這里的dict是python3新版本的,所以順序沒有影響,如果你還在用python2或者python3.5以下,建議升級一下python版本。

接下來,就是空數據的處理了。觀察(’’,)是個元組,第一個位置的數據為空字符串,那么整體長度為1,可以直接通過循環來去掉。這里的循環我們可以用Python中的語法糖寫法,直接一行搞定,最后加個判斷只留下長度大于1,最后用list轉換為列表。

In [179]:list(x for x in dict.fromkeys(rows4) if len(x[0])>1)Out[179]:[(’name’, ’address’), (’tom li’, ’beijing’), (’mary wang’, ’shandong’), (’de8ug’, ’guangzhou’)]

上面的研究搞定了,直接把研究結果放到函數中解決重復行和空行的問題。

注意這時候我們處理的行數據,所以就不再按列循環了。而且,當前的sheet中處理之后,每一行的內容都會修改位置或刪除。所以我們先用old_rows = [x for x in sheet.values]取到舊的每一行的數據,注意這里的sheet后直接用values取到數據,而不是cell對象。這里的old_rows是個列表,就可以用剛才的研究直接轉為刪除重復和空行的數據了。

接下來,用sheet.delete_rows(1, sheet.max_row)

刪除所有行,第一個參數表示從第一行開始,第二個參數為最大行數。最后,用循環新的行數據的方式,把新數據寫入當前的sheet。

In [189]:def handle_duplicate(wb, sheetname): ''' 去除重復行,空行 先取出每一行,清空sheet,處理后寫回 ''' print(f’開始處理工作表:{sheetname}’.center(18, ’-’)) sheet = wb[sheetname] old_rows = [x for x in sheet.values] print(’修改前:’, old_rows) new_rows = list(x for x in dict.fromkeys(old_rows) if len(x[0])>1) print(’修改后-》》’, new_rows) # 刪除所有行 sheet.delete_rows(1, sheet.max_row) # 寫入新數據 for row in new_rows: sheet.append(row)

運行測試,查看結果。再說一次,一定記得測試啊!如果有錯誤就根據錯誤提示,查看代碼,反復調試,去除bugs。

In [190]:wb = load_data()handle_duplicate(wb, ’重復行’)save_as(wb)

2.刪除空格

刪除空格也需要用到字符串的函數,所以這里還是簡單研究一下。如果我們想去除字符串中間的空格,可以用split默認進行分割,然后把分割的結果用’’.join方法連接起來就可以了。注意join前是空的字符串。這里也用不到strip去除兩端的空格了,因為split分割后只有幾個最后的字符串組成的列表。

In [192]:a='a b c 'In [194]:a.strip()Out[194]:’a b c’In [195]:a.split()Out[195]:[’a’, ’b’, ’c’]In [196]:’’.join(a.split())Out[196]:’abc’In [ ]:

研究成功后,寫入函數。這次命名為handle_blank。

In [197]:def handle_blank(wb, sheetname): ''' 按列循環, 通過參數確認目標 ''' print(f’開始處理工作表:{sheetname}’.center(18, ’-’)) sheet = wb[sheetname] for col in sheet.iter_cols(): # 不加參數,循環所有列 for cell in col: print(’修改前:’, cell.value, end=’’) cell.value = ’’.join(cell.value.split()) print(’修改后-》》’,cell.value)In [198]:handle_blank(wb, ’空格’)

3.修改日期和時間格式

有時候,我們需要對表格中時間相關的單元格進行格式修改,這里需要用到Python中時間模塊datetime,將需要的格式進行拼接后,用strftime進行轉換。

假設這里我們想把之前簡單的1/11月日格式,更改為年月日的樣式,中間加上分隔符/或-,就需要用'%x'或'%Y-%m-%d'來進行操作了。注意這里的%加字母都是官方定義好的格式而已,我們用到時候進行拼接,傳給函數就可以了。

具體更多的拼接格式如下:

In [199]:import datetimeIn [209]:d=datetime.datetime(2019,1,11)In [203]:d.strftime('%x')Out[203]:’01/11/19’In [205]:d.strftime('%Y-%m-%d')Out[205]:’2019-01-11’

研究完成后,我們編寫函數。

首先需要用m, d = cell.value.split(’/’)把之前簡單的日期進行分割,得到m,代表月份和日期,然后用datetime進行轉換,生成時間相關的對象day,注意里面的參數是數字,所以用int轉換,最后把day進行格式化輸出。編寫函數后,一定記得測試。

In [218]:def handle_time(wb, sheetname): ''' 按列循環, 通過參數確認目標 ''' print(f’開始處理工作表:{sheetname}’.center(18, ’-’)) sheet = wb[sheetname] for col in sheet.iter_cols(max_col=1, min_row=2): # 找到時間的列, 第一列,從第二行開始 for cell in col: print(’修改前:’, cell.value, end=’’) m, d = cell.value.split(’/’) day = datetime.datetime(2019, int(m), int(d)) cell.value = day.strftime('%Y-%m-%d') print(’修改后-》》’,cell.value)In [220]:wb = load_data()handle_time(wb, ’時間’)save_as(wb)

4.修復數字和符號

接下來,處理數字和符號相關的操作。加入我們之前的價格,很多是有小數點的,這時候還想保存兩位小數,并加上人民幣符號為前綴。就需要新的一波研究了。

有小數點,一是要保證位數,我們這里要求2位,二是要對多余的位數四舍五入。可以有以下倆個方式完成,一個用Decimal一個用round,兩個的區別是Decimal('0.00')指定位數后,會自動補0,而round遇到0就自動舍掉了。而且round在四舍五入的計算中,還有點特殊。具體可查看官方文檔。

我們這里用Decimal來完成函數內相關操作。記得測試啊!

In [227]:from decimal import DecimalIn [240]:a = 3.1b=Decimal(a).quantize(Decimal('0.00'))print(b)3.10In [244]:round(a,2) # 位數自動省略0Out[244]:3.1In [247]:def handle_num(wb, sheetname): ''' 按列循環, 通過參數確認目標 ''' print(f’開始處理工作表:{sheetname}’.center(18, ’-’)) sheet = wb[sheetname] for col in sheet.iter_cols(min_col=3, max_col=3, min_row=2): # 找到時間的列, 第一列,從第二行開始 for cell in col: print(’修改前:’, cell.value, end=’’)# cell.value = round(float(cell.value), 3) cell.value = ’¥’ + str(Decimal(cell.value).quantize(Decimal('0.00'))) print(’修改后-》》’,cell.value)In [249]:wb = load_data()handle_num(wb, ’數字符號’)save_as(wb)

到此這篇關于Python 自由定制表格的實現示例的文章就介紹到這了,更多相關Python 自由定制表格內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
999在线观看精品免费不卡网站| 久久影院一区二区三区| 成人亚洲精品| 国产精品久av福利在线观看| 国产日本精品| 久久精品资源| 在线手机中文字幕| se01亚洲视频| 欧美一区影院| 国产精品地址| 国产一区二区三区四区| 捆绑调教日本一区二区三区| 理论片午夜视频在线观看| 91福利精品在线观看| 国产午夜精品一区在线观看| 麻豆国产91在线播放| yellow在线观看网址| 亚洲先锋成人| 亚洲综合不卡| 日韩精品免费视频人成| 日韩高清不卡在线| 国产精品一级| 国产精品国产一区| 日韩免费视频| 红桃视频国产精品| 一区二区三区国产在线| 国产毛片精品久久| 精品美女视频 | 国产极品嫩模在线观看91精品| 麻豆精品99| 欧美三级网址| 日韩精品一二区| 国产精品99久久免费| 日韩欧美一区免费| 黑丝一区二区| 亚洲精品无播放器在线播放| 久久精品xxxxx| 国产精品多人| 成人免费电影网址| 亚洲三级网站| 国产一区2区在线观看| 亚洲二区在线| 久久午夜精品| 欧美国产先锋| 婷婷激情图片久久| 欧美一区二区三区久久精品| 精品伊人久久| 视频一区在线视频| 国产高清日韩| 成人福利av| 免费视频亚洲| 日韩av中文字幕一区二区三区| 中文字幕高清在线播放| 亚洲综合中文| 岛国av在线播放| 蜜臀国产一区二区三区在线播放 | 中文字幕av一区二区三区四区| 国产精品2区| 91九色精品| 另类小说一区二区三区| 亚洲一区久久| 黄色在线观看www| 亚洲久久视频| 久久精品亚洲人成影院| 丝袜国产日韩另类美女| 成人台湾亚洲精品一区二区| 模特精品在线| 欧美韩日一区| 亚洲精品免费观看| 国产亚洲一区二区手机在线观看 | 久久亚洲精品中文字幕| 日韩一区二区久久| 国产精品sss在线观看av| 国产精品日本| 日韩在线不卡| 一区二区三区午夜视频| 水蜜桃久久夜色精品一区| 日韩毛片一区| 尤物在线精品| av免费不卡国产观看| 国产一精品一av一免费爽爽| 国产中文一区| 国际精品欧美精品| 日本va欧美va精品发布| 欧美综合另类| 国产日韩欧美中文在线| 日韩中文字幕亚洲一区二区va在线| 精品国产乱码久久久久久1区2匹| 免费人成黄页网站在线一区二区 | 亚洲欧美日韩高清在线| 久久久久久婷| 国产欧美视频在线| 中文一区一区三区免费在线观 | 粉嫩av一区二区三区四区五区 | 国产调教一区二区三区| 亚洲在线成人| 欧美性感美女一区二区 | 日韩精品欧美成人高清一区二区| 亚洲激情婷婷| 久久国产影院| 国产高清不卡| 精品久久免费| 国产精品国产三级在线观看| 美女尤物久久精品| 精品国产美女a久久9999| 91亚洲国产成人久久精品| 涩涩av在线| 亚洲午夜免费| 久久国产欧美| 久久精品国产99国产| 亚洲色图网站| 亚洲日产av中文字幕| 久久av在线| 嫩呦国产一区二区三区av| 欧美日韩国产探花| 91欧美在线| 国产精品一区2区3区| 中文久久精品| 国产日韩电影| 久久久精品区| 国产高清视频一区二区| 日韩一区二区三区精品视频第3页| 久久av在线| 蜜桃久久av一区| 偷拍亚洲精品| 国产人成精品一区二区三| 久久国产乱子精品免费女| 国产欧美日韩一区二区三区在线| 麻豆一区二区在线| 欧美丰满日韩| 蜜臀91精品国产高清在线观看| 免费美女久久99| 国产精品极品| 久久久久.com| 在线国产精品一区| 国产精品流白浆在线观看| 色婷婷综合网| 久久福利一区| 美女国产精品久久久| 91精品国产调教在线观看| 中文字幕一区二区三区四区久久 | 97精品国产| 国产一区调教| 国产精品99一区二区三| 欧美亚洲在线日韩| 一区二区精彩视频| 久久福利在线| 欧美jjzz| 国产精品一区二区av日韩在线 | 久久久蜜桃一区二区人| 蜜臀va亚洲va欧美va天堂| 国产精品亚洲四区在线观看| 国产亚洲午夜| 国产日产高清欧美一区二区三区| 日韩久久精品| 亚洲精品裸体| 日韩综合在线| 欧美不卡视频| 国产图片一区| 欧美成人午夜| 欧美aaaaaa午夜精品| 日韩午夜高潮| 国产精品成人a在线观看| 国产视频欧美| 精品美女在线视频| 免费久久99精品国产自在现线| 国产无遮挡裸体免费久久| 久久久成人网| 国产精品亚洲综合在线观看| 久久香蕉国产| 久久成人高清| 亚洲一区区二区| 精品日韩一区| 日韩欧美高清一区二区三区| 日韩精品影视| 久久av影视| 免费视频最近日韩| 美女福利一区二区三区| 日韩毛片一区| 亚洲精品小说| 国产成人免费av一区二区午夜| 蜜桃av一区二区在线观看| а√天堂8资源中文在线| 日韩不卡一二三区| 婷婷激情综合| 国产成人黄色| 日本欧美久久久久免费播放网| 成人日韩在线观看| 久久99蜜桃| 亚洲2区在线| 99pao成人国产永久免费视频| 伊人久久av| 久久男人av| 国产欧美一区二区三区米奇| 美女久久一区| 在线日韩电影| 久久久久久一区二区| 国产精品mm| 国产亚洲一区二区三区不卡| 亚洲三级视频|