パンダのread_xml()メソッドのテスト戦略
現在、pandas I / Oツールはread_xml()メソッドと対応するものを維持していませんto_xml()。ただし、read_jsonツリーのような構造をデータフレームのインポートとread_htmlマークアップ形式に実装できることを証明しています。 パンダのチームは、このような考慮しなければread_xmlバージョンパンダの将来のための方法を、どのような実装彼らが追求するでしょう:ビルトインで解析するxml.etree.ElementTreeのでiterfind()かiterparse()、機能やサードパーティのモジュールlxmlのXPath 1.0のとXSLT 1.0の方法で? 以下は、単純でフラットな要素中心のXML入力での4つのメソッドタイプのテスト実行です。すべては、ルートの第2レベルの子の一般化された解析用に設定されており、各メソッドはまったく同じパンダデータフレームを生成する必要があります。pd.Dataframe()辞書のリストの最後の呼び出しを除くすべて。XSLTメソッドは、XMLをCSVに変換してでキャストStringIO()しpd.read_csv()ます。 質問 (マルチパート) パフォーマンス:iterparseファイルが繰り返し解析されるときに、サイズの大きいファイルにしばしば推奨される遅い方法をどのように説明しますか?if論理チェックが原因の一部ですか? メモリ:CPUメモリはI / O呼び出しのタイミングと相関関係がありますか?XSLTおよびXPath 1.0は、ファイル全体を解析するためにメモリ内で読み取る必要があるため、大きなXMLドキュメントではうまく拡張できない傾向があります。 戦略:辞書のリストはDataframe()通話に最適な戦略ですか?これらの興味深い答えを見てください:ジェネレーターのバージョンとiterwalkのユーザー定義バージョン。両方のリストをデータフレームにアップキャストします。 入力データ(私たちのパンダの友達が含まれる年別のStack Overflowの現在のトップユーザー) <?xml version="1.0" encoding="utf-8"?> <stackoverflow> <topusers> <user>Gordon Linoff</user> <link>http://www.stackoverflow.com//users/1144035/gordon-linoff</link> <location>New York, United States</location> <year_rep>5,985</year_rep> <total_rep>499,408</total_rep> <tag1>sql</tag1> <tag2>sql-server</tag2> <tag3>mysql</tag3> </topusers> <topusers> <user>Günter Zöchbauer</user> <link>http://www.stackoverflow.com//users/217408/g%c3%bcnter-z%c3%b6chbauer</link> <location>Linz, Austria</location> <year_rep>5,835</year_rep> <total_rep>154,439</total_rep> <tag1>angular2</tag1> <tag2>typescript</tag2> <tag3>javascript</tag3> </topusers> <topusers> <user>jezrael</user> …