iT邦幫忙

0

求大神 用Python 裡的pandas讀xml檔

我上網爬了許多文章
也試者用他們的程式碼 還是未能成功
希望各位大神可以教小弟
如果可以的話 希望程式碼有備註讓學習

看更多先前的討論...收起先前的討論...
hokou iT邦新手 4 級 ‧ 2021-01-27 10:21:41 檢舉
pandas 應該不能讀 XML ??
參考之前的回答
https://ithelp.ithome.com.tw/questions/10201669
或是這個套件?
https://pypi.org/project/pandas-read-xml/
ccutmis iT邦高手 4 級 ‧ 2021-01-27 10:36:54 檢舉
PANDAS-READ-XML :
https://pypi.org/project/pandas-read-xml/
看起來應該是可以 裡面也有附範例了
我參考了這部影片https://www.youtube.com/watch?v=WWgiRkvl1Ws

import xml.etree.ElementTree as ET
import pandas as pd

def intr_docs(xml_doc):
attr=xml_doc.attrib

for xml in xml_doc.iter('document'):
doc_dict=attr.copy()
doc_dict.update(xml.attrib)
doc_dict['data']=xml.text

yield doc_dict


etree= ET.parse('XML.xml')
doc_df =pd.Datafrane(list(intr_docs(etree.getroot())))
print(doc_df)

但最終跑出 module 'pandas' has no attribute 'Datafrane'
是我有打錯還是我哪個地方因該要搞懂
例外我也嘗試下載pandas_read_xml 他也顯示錯誤
感謝兩位提供幫助
hokou iT邦新手 4 級 ‧ 2021-01-28 08:05:16 檢舉
pandas.DataFrame

大小寫跟拼錯的問題吧

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2021-01-27 10:28:42

參考看看:Python XML to dataframe

另外
如果兩個月前的賓果有寫出來
請選個最佳解答以結案

抱歉新手不知道要結案 以選最佳答案
利用你給的參考有順利跑出結果
但還有些地方沒看懂希望大神可以解釋一下這些代碼是什麼意思
因為到時候需要跟老師講解

  1. df_cols = ["name", "email", "grade", "age"]
  2. rows.append({"name": s_name, "email": s_mail,
    "grade": s_grade, "age": s_age})
  3. out_df = pd.DataFrame(rows, columns = df_cols)
    感謝你

只有兩件事:定義「格式」和準備「資料」

#定義欄標題(可以改成其他文字看看有什麼差別,例:NAME,EMAIL)
#不會影響資料內容
df_cols = ["name", "email", "grade", "age"]

#定義格式及準備資料
rows.append({"name": s_name, "email": s_mail,
"grade": s_grade, "age": s_age})

#用定義的格式和資料,產生一個 dataframe
out_df = pd.DataFrame(rows, columns = df_cols)  

#上面這一列也可以簡化成這麼寫,就不會用到前面的 df_cols 了
#直接顯示 rows.append 裡面寫的 "name","email"...
ooo_df = pd.DataFrame(rows)

我要發表回答

立即登入回答