pandas讀取xml檔案

2021-08-03 18:55:08 字數 1393 閱讀 1245

原創答案來自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...