pandas 小記 pandas 讀寫xml檔案

2021-10-02 22:30:56 字數 1926 閱讀 8088

import xml.etree.elementtree as et

import pandas as pd

defiter_records

(records)

:"""

遍歷每個節點的生成器

:param records:

:return:

"""for record in records:

temp_dict =

# 儲存節點key-value

for var in record:

temp_dict[var.attrib[

'var_name']]

= var.text

# 生成值,即每個節點的資料

yield temp_dict

defread_xml

(xmlfilename)

:"""

讀取xml資料,返回df

:param xmlfilename:

:return:

"""with

open

(xmlfilename,

'r')

as xml_file:

tree = et.parse(xml_file)

# 訪問根節點

root = tree.getroot(

)# 從根節點開始遍歷,返回df

return pd.dataframe(

list

(iter_records(root)))

defxml_encode

(row)

:"""

將每行資料轉換成xml

:param row:

:return:

"""# 輸出節點開始標籤 ,名稱可以根據實際需要修改

xmlitem =

[' '

]# 轉換成xml格式

for field in row.index:

line =

' '

.format

(field, row[field]

)# 輸出節點結束標籤

' '

)# 返回結果

return

'\n'

.join(xmlitem)

defwrite_xml

(xmlfilename, data)

:"""

將資料寫入xml檔案

:param xmlfilename:

:param data:

:return:

"""with

open

(xmlfilename,

'w')

as xmlfile:

# 寫頭部

xmlfile.write(

'<?xml version="1.0" encoding="utf-8"?>'

) xmlfile.write(

'\n'

)# 名稱可以根據實際需要修改

# 寫資料

xmlfile.write(

'\n'

.join(data.

(xml_encode, axis=1)

))xmlfile.write(

'\n'

)# 名稱可以根據實際需要修改

xml_filenane = r'e:\data\realestate_trans.xml'

new_filename = r'e:\data\realestate_trans_output.xml'

xml_df = read_xml(xml_filenane)

# 讀取到df

print

(xml_df)

# write_xml(new_filename, xml_df) # 寫入新xml檔案

pandas迭代讀mysql Pandas迭代

pandas物件之間的基本迭代的行為取決於型別。當迭代乙個系列時,它被視為陣列式,基本迭代產生這些值。其他資料結構,如 dataframe和panel,遵循類似慣例迭代物件的鍵。簡而言之,基本迭代 對於i在物件中 產生 series 值 dataframe 列標籤 pannel 專案標籤 迭代dat...

pandas系列之index小記

import pandas as pd 資料準備 df pd.dataframe np.arange 20 reshape 5,4 index 1 3,6 9,10 重置索引且保留原始索引 df.reset index 重置索引且不保留原始索引 df.reset index drop true 按照...

numpy和pandas學習小記錄

numpy和pandas是python的科學計算包,其常用於深度學習中的資料處理,在此將自己的學習情況進行記錄。筆者在ubuntu18.04的系統直接開啟終端輸入 pip install numpy,pip install pandas 進行numpy pandas 安裝 定義乙個矩陣import ...