原創答案來自stackflow
import pandas as pd
from xml.sax import contenthandler, parse
# reference
class excelhandler(contenthandler):
def __init__(self):
self.chars = [ ]
self.cells = [ ]
self.rows = [ ]
self.tables = [ ]
def characters(self, content):
def startelement(self, name, atts):
if name=="cell":
self.chars = [ ]
elif name=="row":
self.cells=[ ]
elif name=="table":
self.rows = [ ]
def endelement(self, name):
if name=="cell":
elif name=="row":
elif name=="table":
excelhandler = excelhandler()
parse('coalpublic2012.xls', excelhandler)#檔名
df1 = pd.dataframe(excelhandler.tables[0][1:], columns=excelhandler.tables[0][0])
另外還有不同情況。
在我使用的過程中,發現有些xml的格式不一樣,導致上面的excelhandler用不了,如開頭和結尾是這樣的,是可以用的:
開頭<table ss:expandedcolumncount="2" ss:expandedrowcount="151" x:fullcolumns="1" x:fullrows="1" ss:defaultcolumnwidth="48" ss:defaultrowheight="12.75">\xe5\x9f\x8e\xe5\xb8\x82
</table>
但是開頭和結尾是這樣的,需要修改,將excelhandler的cell/row/table修改為對應的ss:cell/ss:row/ss:table就可以了:
開頭<ss:table>\n',
' \n',
'
結尾' \n',
' </ss:table>\n',
' \n',
'']
pandas檔案讀取
改變工作路徑 import os print os.getcwd 列印當前工作目錄 print os.listdir os.chdir c users administrator import pandas as pd for price in dfs1 print price 讀取資料是指定乙個列...
讀取XML檔案
private void button2 click object sender,eventargs e using filestream fs new filestream filename,filemode.open,fileaccess.read n xl.name 是否有屬性 if xl.h...
xml檔案讀取
xml檔案讀取 利用庫tinyxml 示例xml 獲取對應路徑上的xml if document null tixmlelement nodeelement document rootelement 獲取根節點 tixmlelement objectelement nodeelement first...