pandas读取xml文件
来源:互联网 发布:js向div添加html 编辑:程序博客网 时间:2024/06/05 16:05
原创答案来自stackflow
import pandas as pdfrom xml.sax import ContentHandler, parse# Reference https://goo.gl/KaOBG3class ExcelHandler(ContentHandler): def __init__(self): self.chars = [ ] self.cells = [ ] self.rows = [ ] self.tables = [ ] def characters(self, content): self.chars.append(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": self.cells.append(''.join(self.chars)) elif name=="Row": self.rows.append(self.cells) elif name=="Table": self.tables.append(self.rows)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"><Row><Cell ss:StyleID="s50"><Data ss:Type="String">\xe5\x9f\x8e\xe5\xb8\x82</Data></Cell><Cell ss:StyleID="s51">
结尾
</Data></Cell></Row></Table><WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
但是开头和结尾是这样的,需要修改,将excelHandler的Cell/Row/Table修改为对应的ss:Cell/ss:Row/ss:Table就可以了:
开头
<ss:Table>\n',
' <ss:Row>\n',
' <ss:Cell ss:StyleID="s27"><Data ss:Type="String">
' </ss:Row>\n',
' </ss:Table>\n',
' </Worksheet>\n',
'</Workbook>']
阅读全文
0 0
- pandas读取xml文件
- pandas读取csv文件
- pandas 读取大文件
- Pandas读取文件操作
- python Pandas库-文件读取
- pandas写入读取h5文件
- 通过Pandas读取大文件
- 使用python pandas读取csv文件数据
- 使用pandas read_table读取csv文件
- pandas读取文件中包含中文,出错
- Pandas读取csv文件Error总结
- pandas读取csv文件提示不存在是什么原因?
- pandas读取CSV文件时报错
- pandas读取csv文件的指定列
- SAX 读取xml文件
- xml文件读取
- 读取xml文件内容
- 读取xml 文件
- 详细解析 JavaScript 获取元素的坐标
- Python 3从入门到精通12-创建新文件并写入内容,在文件尾部更新内容
- OpenJudge[8469]特殊密码锁
- Mysql主从库不同步1236错误:could not find first log file name in binary....
- 开发中用到的比较好的转义工具
- pandas读取xml文件
- 理解 C++ 中继承层次的关键在于理解如何确定函数调用
- 菜单编写(VC_Win32)
- VIew的位置信息
- linux安装mysql之设置远程访问权限
- 简单了解Apache CXF
- spring aop理解
- 为什么 feature scaling 会使 gradient descent 的收敛更好?
- jQuery