日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python一些方便excel行操作的函数(一)

發(fā)布時間:2023/12/10 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python一些方便excel行操作的函数(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
import collections class headhandler():def __init__(self,mylist):self.mystorage={}self.mylist = mylistdef delempty(self):'''去除重復:return:'''while "" in self.mylist:self.mylist.remove("")def formatmydata(self,i):try:i=i.replace("","")except Exception:i=ireturn idef fillempty(self):'''只用于處理表頭信息:return:'''# 對于不規(guī)則列表的處理辦法,如果元素的下一個元素仍是字符串類型,或者不存在# 就插入或者用0填充 self.delempty()for i in self.mylist:myindex = self.mylist.index(i)if myindex == 0 or (myindex % 2 == 0):try:nextelement = self.mylist[myindex + 1]if isinstance(self.mylist[myindex + 1], str):self.mylist.insert(myindex + 1, 0)except IndexError:self.mylist.append(0)self.mylist =list(map(self.formatmydata,self.mylist))print(self.mylist)def turntodict(self):self.fillempty()for i in self.mylist[::2]:self.mystorage[i] =self.mylist[self.mylist.index(i)+1]return self.mystoragedef finalchart(self):self.delempty()self.mylist = list(map(self.formatmydata,self.mylist))#print(self.mylist)finalchart = self.turntodict()#print(finalchart)return finalchartclass rowhandler(headhandler):def __init__(self,mylist):super(rowhandler,self).__init__(mylist)def fillempty(self):self.delempty()staticdict={}for myindex,myelement in enumerate(self.mylist):if myelement in staticdict:staticdict[myelement].append(myindex)else:staticdict[myelement]=[]staticdict[myelement].append(myindex)for i in list(staticdict.keys()):if len(staticdict[i])==1:del staticdict[i]else:self.mylist[staticdict[i][0]] =self.mylist[staticdict[i][0]]+'重量'self.mylist[staticdict[i][1]] = self.mylist[staticdict[i][1]] + '含量'self.mylist[staticdict[i][2]] = self.mylist[staticdict[i][2]] + '價格'return self.mylistdef turntodict(self):self.fillempty()for i in self.mylist[::2]:self.mystorage[i] =self.mylist[self.mylist.index(i)+1]return self.mystorage #mylist = ['采購日期:', '', 43495.0, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '索賠金額:', '', '', '', '', '', 0.0, '', ''] mydict= {'a':[1,2],'b':[2,3,4]} for i in list(mydict.keys()):print(mydict[i])if len(mydict[i])>2:del mydict[i] print(mydict) #print(wenwa.index('每噸人工:'))

輸出結(jié)果:

[1, 2] [2, 3, 4] {'a': [1, 2]} from anewclass import * class docgen:def __init__(self,mylist):self.mxrows = mylist[1::]self.columnline = mylist[0]self.addlist=[]#用于承載非規(guī)則行信息self.mxlist = []def addstring(self):mycounter = dict(collections.Counter(self.columnline))keypos = []finalist = []for i in mycounter.keys():if mycounter[i] > 1:for myindex, myelements in enumerate(self.columnline):if myelements == i:keypos.append(myindex)if myindex == len(self.columnline) - 1:finalist.append(keypos)keypos = []for i in finalist:self.columnline[i[0]] = self.columnline[i[0]] + "重量"self.columnline[i[1]] = self.columnline[i[1]] + "含量"self.columnline[i[2]] = self.columnline[i[2]] + "價格"return self.columnlinedef genmx(self):self.addstring()for i in self.mxrows:if i[0]=="":myhandler = rowhandler(i)self.addlist.append(myhandler.turntodict())else:myrow = rowhandler(self.columnline)self.columnline = myrow.fillempty()self.mxlist.append(dict(zip(self.columnline,i)))def returnall(self):self.genmx()return {'mx':self.mxlist,'others':self.addlist}wuwa =[ ['品名', '采購價', '每噸成本', '重量', '貨品總成本', '銅重量', '鋁重量', '片重量', '無限長', '鋤頭馬', '鐵重量', '銅含量', '鋁含量', '片含量', '無限長',
'鋤頭馬', '鐵含量', '銅價格', '鋁價格', '片價格', '無限長', '鋤頭馬', '鐵價格', '產(chǎn)值', '每噸毛利', '貨品贏利'], ['銅芯', 0.72, 11956.0, 19.617, 234540.852, 4.665, 0.068, 4.706, 0.506, 1.386, 1.63, 0.23780394555742468, 0.0034663811999796094,
0.23989396951623593, 0.025793954223377682, 0.07065300504664321, 0.08309119641127592, 39200.0, 7000.0, 5050.0, 4500.0, 2750.0, 1800.0,
11791.65009940358, -164.3499005964204, -3224.051999999979], ['', '', '', '', '', '', '23尖角', 1.157, '35尖角', 1.766, '', '', '23尖角', 0.058979456593770706, '35尖角', 0.09002395881123515, '', '',

'23尖角', 5000.0, '35尖角', 3500.0, '', '', '', ''], ['', '', '', '', '', '', '35平角', 1.073, '', '', '', '', '35平角', 0.05469745628791354, '', '', '', '', '35平角', 3000.0, '', '', '', '',
'', ''] ]saiwa = docgen(wuwa) print("===============mx===================") for i in saiwa.returnall()['mx']:print(i) print("===============others===================")for i in saiwa.returnall()['others']:print(i)

輸出結(jié)果:

[1, 2] [2, 3, 4] {'a': [1, 2]} ===============mx=================== {'品名': '銅芯', '采購價': 0.72, '每噸成本': 11956.0, '重量': 19.617, '貨品總成本': 234540.852, '銅重量': 4.665, '鋁重量': 0.068, '片重量': 4.706,
'無限長重量': 0.506, '鋤頭馬重量': 1.386, '鐵重量': 1.63, '銅含量': 0.23780394555742468, '鋁含量': 0.0034663811999796094, '片含量':
0.23989396951623593, '無限長含量': 0.025793954223377682, '鋤頭馬含量': 0.07065300504664321, '鐵含量': 0.08309119641127592, '銅價格': 39200.0,
'鋁價格': 7000.0, '片價格': 5050.0, '無限長價格': 4500.0, '鋤頭馬價格': 2750.0, '鐵價格': 1800.0, '產(chǎn)值': 11791.65009940358, '每噸毛利':
-164.3499005964204, '貨品贏利': -3224.051999999979} ===============others=================== {'23尖角重量': 1.157, '35尖角重量': 1.766, '23尖角含量': 0.058979456593770706, '35尖角含量': 0.09002395881123515, '23尖角價格': 5000.0,

'35尖角價格': 3500.0} {'35平角重量': 1.073, '35平角含量': 0.05469745628791354, '35平角價格': 3000.0}

?

def readexcel(path):datablock = pd.read_excel(path,sheet_name=0)print(len(datablock))wenwa = datablock.head(2)print(type(wenwa.index))print(datablock.index.__dict__)print("columns",datablock.columns[0])print("columns",datablock.head(2).columns)def loadexcel(path):mysheet = xlrd.open_workbook(path)mybook = mysheet.sheet_by_index(0)#print(mybook.row_values(0))colnamelist = mybook.row_values(2)row3 = mybook.row_values(3)#print(dict(zip(colnamelist,row3)))allrets = []for i in range(mybook.nrows):#print(mybook.row_values(i)) allrets.append(mybook.row_values(i))print(mybook.nrows)for i in allrets:#print(i)passreturn allretsdef mergerows(mylist):splitline = 0doc = {}for i in mylist:print(i)k='每噸人工:'if k in i:print('in: ',mylist.index(i))splitline = mylist.index(i)doc["mx"] = mylist[2:splitline-1]doc["header"] = mylist[splitline:]return doc duwa = loadexcel('火燒片 2. MSCU3272441 銅芯.csv') doc = mergerows(duwa) for i in doc['header']:print(i)print("==================mx=============================") for i in doc['mx']:print(i)def dealmx(mylist):if mylist[0]=='':passmylist1=['品名', '采購價', '每噸成本', '重量', '貨品總成本', '銅重量', '鋁重量', '片重量', '無限長', '鋤頭馬', '鐵重量', '銅含量', '鋁含量', '片含量',

'無限長', '鋤頭馬', '鐵含量', '銅價格', '鋁價格', '片價格', '無限長', '鋤頭馬', '鐵價格', '產(chǎn)值', '每噸毛利', '貨品贏利'] mylist2=['銅芯', 0.72, 11956.0, 19.617, 234540.852, 4.665, 0.068, 4.706, 0.506, 1.386, 1.63, 0.23780394555742468, 0.0034663811999796094,
0.23989396951623593, 0.025793954223377682, 0.07065300504664321, 0.08309119641127592, 39200.0, 7000.0, 5050.0, 4500.0, 2750.0, 1800.0,
11791.65009940358, -164.3499005964204, -3224.051999999979]print(dict(zip(mylist1,mylist2))) print(collections.Counter(mylist1)) print(mylist1.index('無限長'))def addstring(mylist):mycounter = collections.Counter(mylist)keypos=[]finalist=[]for i in mycounter.keys():if mycounter[i]>1:for myindex,myelements in enumerate(mylist):if myelements==i:keypos.append(myindex)if myindex==len(mylist)-1:finalist.append(keypos)keypos = []for i in finalist:mylist[i[0]]=mylist[i[0]]+"重量"mylist[i[1]]=mylist[i[1]]+"含量"mylist[i[2]] = mylist[i[2]] + "價格"return mylist print(addstring(mylist1))mycounter = collections.Counter(mylist1) print(dict(mycounter))

輸出結(jié)果:

12 ['火燒片', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''] ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''] ['品名', '采購價', '每噸成本', '重量', '貨品總成本', '銅重量', '鋁重量', '片重量', '無限長', '鋤頭馬', '鐵重量', '銅含量', '鋁含量', '片含量', '無限長',
'鋤頭馬', '鐵含量', '銅價格', '鋁價格', '片價格', '無限長', '鋤頭馬', '鐵價格', '產(chǎn)值', '每噸毛利', '貨品贏利'] ['銅芯', 0.72, 11956.0, 19.617, 234540.852, 4.665, 0.068, 4.706, 0.506, 1.386, 1.63, 0.23780394555742468, 0.0034663811999796094,
0.23989396951623593, 0.025793954223377682, 0.07065300504664321, 0.08309119641127592, 39200.0, 7000.0, 5050.0, 4500.0, 2750.0, 1800.0,
11791.65009940358, -164.3499005964204, -3224.051999999979] ['', '', '', '', '', '', '23尖角', 1.157, '35尖角', 1.766, '', '', '23尖角', 0.058979456593770706, '35尖角', 0.09002395881123515, '', '',
'23尖角', 5000.0, '35尖角', 3500.0, '', '', '', ''] ['', '', '', '', '', '', '35平角', 1.073, '', '', '', '', '35平角', 0.05469745628791354, '', '', '', '', '35平角', 3000.0, '', '', '', '', '',
''] ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''] ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '每噸人工:', '', '', '', '', '總?cè)斯?/span>', 0.0, '', ''] in: 7 ['采購日期:', '', 43495.0, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '索賠金額:', '', '', '', '', '', 0.0, '', ''] ['計算日期:', '', 43594.0, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '總成本:', '', '', '', '', '', 234540.852, '', ''] ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '總利潤:', '', '', '', '', '', -3224.051999999979, '', ''] ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '利潤百分比:', '', '', '', '', '', -0.013746227885281063, '', ''] ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '每噸人工:', '', '', '', '', '總?cè)斯?/span>', 0.0, '', ''] ['采購日期:', '', 43495.0, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '索賠金額:', '', '', '', '', '', 0.0, '', ''] ['計算日期:', '', 43594.0, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '總成本:', '', '', '', '', '', 234540.852, '', ''] ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '總利潤:', '', '', '', '', '', -3224.051999999979, '', ''] ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '利潤百分比:', '', '', '', '', '', -0.013746227885281063, '', ''] ==================mx============================= ['品名', '采購價', '每噸成本', '重量', '貨品總成本', '銅重量', '鋁重量', '片重量', '無限長', '鋤頭馬', '鐵重量', '銅含量', '鋁含量', '片含量', '無限長',

'鋤頭馬', '鐵含量', '銅價格', '鋁價格', '片價格', '無限長', '鋤頭馬', '鐵價格', '產(chǎn)值', '每噸毛利', '貨品贏利'] ['銅芯', 0.72, 11956.0, 19.617, 234540.852, 4.665, 0.068, 4.706, 0.506, 1.386, 1.63, 0.23780394555742468, 0.0034663811999796094,
0.23989396951623593, 0.025793954223377682, 0.07065300504664321, 0.08309119641127592, 39200.0, 7000.0, 5050.0, 4500.0, 2750.0, 1800.0,
11791.65009940358, -164.3499005964204, -3224.051999999979]
[
'', '', '', '', '', '', '23尖角', 1.157, '35尖角', 1.766, '', '', '23尖角', 0.058979456593770706, '35尖角', 0.09002395881123515, '', '',
'23尖角', 5000.0, '35尖角', 3500.0, '', '', '', '']
[
'', '', '', '', '', '', '35平角', 1.073, '', '', '', '', '35平角', 0.05469745628791354, '', '', '', '', '35平角', 3000.0, '', '', '', '', '',
'']
{
'品名': '銅芯', '采購價': 0.72, '每噸成本': 11956.0, '重量': 19.617, '貨品總成本': 234540.852, '銅重量': 4.665, '鋁重量': 0.068, '片重量': 4.706,
'無限長': 4500.0, '鋤頭馬': 2750.0, '鐵重量': 1.63, '銅含量': 0.23780394555742468, '鋁含量': 0.0034663811999796094, '片含量': 0.23989396951623593,
'鐵含量': 0.08309119641127592,
'銅價格': 39200.0, '鋁價格': 7000.0, '片價格': 5050.0, '鐵價格': 1800.0, '產(chǎn)值': 11791.65009940358, '每噸毛利': -164.3499005964204, '貨品贏利':
-3224.051999999979}
Counter({
'無限長': 3, '鋤頭馬': 3, '品名': 1, '采購價': 1, '每噸成本': 1, '重量': 1, '貨品總成本': 1, '銅重量': 1, '鋁重量': 1, '片重量': 1,
'鐵重量': 1, '銅含量': 1, '鋁含量': 1, '片含量': 1, '鐵含量': 1, '銅價格': 1, '鋁價格': 1, '片價格': 1, '鐵價格': 1, '產(chǎn)值': 1, '每噸毛利': 1,
'貨品贏利': 1})
8 ['品名', '采購價', '每噸成本', '重量', '貨品總成本', '銅重量', '鋁重量', '片重量', '無限長重量', '鋤頭馬重量', '鐵重量', '銅含量', '鋁含量', '片含量',
'無限長含量', '鋤頭馬含量', '鐵含量', '銅價格', '鋁價格', '片價格', '無限長價格', '鋤頭馬價格', '鐵價格', '產(chǎn)值', '每噸毛利', '貨品贏利'] {'品名': 1, '采購價': 1, '每噸成本': 1, '重量': 1, '貨品總成本': 1, '銅重量': 1, '鋁重量': 1, '片重量': 1, '無限長重量': 1, '鋤頭馬重量': 1,
'鐵重量': 1, '銅含量': 1, '鋁含量': 1, '片含量': 1, '無限長含量': 1, '鋤頭馬含量': 1, '鐵含量': 1, '銅價格': 1, '鋁價格': 1, '片價格': 1,
'無限長價格': 1, '鋤頭馬價格': 1, '鐵價格': 1, '產(chǎn)值': 1, '每噸毛利': 1, '貨品贏利': 1}

?

轉(zhuǎn)載于:https://www.cnblogs.com/saintdingspage/p/11368194.html

總結(jié)

以上是生活随笔為你收集整理的python一些方便excel行操作的函数(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。