import xml.etree.ElementTree as ET
import pandas as pd
def parse_frequency_and_magnitude(xml_file):
tree = ET.parse(xml_file)
root = tree.getroot()
frequency_list = []
magnitude_list = []
# <sub0><frequency> 데이터 추출 영역 </frequency></sub0>
for sub0 in root.findall('.//sub0'):
frequency_str = sub0.find('frequency').text if sub0.find('frequency') is not None else ''
frequency_list.extend(map(int, frequency_str.split(';')) if frequency_str else [])
magnitude_str = sub0.find('magnitude').text if sub0.find('magnitude') is not None else ''
magnitude_list.extend(map(float, magnitude_str.split(';')) if magnitude_str else [])
# 데이터 프레임으로 저장
df = pd.DataFrame({
'frequency': frequency_list,
'magnitude': magnitude_list
})
return df
<root>
<sub0>
<frequency>100;200;300;400;500;</frequency>
<magnitude>11;12;13;14;15;</magnitude>
</sub0>
<data>
<frequency>200Hz</frequency>
<magnitude>3.4</magnitude>
</data>
</root>
xml_file = 'example.xml'
df = parse_frequency_and_magnitude(xml_file)
print(df)
import os
if os.path.isfile('example.xml'):
df = parse_frequency_and_magnitude('example.xml')
print(df)
else:
print("The file 'example.xml' does not exist.")
frequency magnitude
0 100 11.0
1 200 12.0
2 300 13.0
3 400 14.0
4 500 15.0