Я учусь анализировать файлы KML в Python с помощью модуля pyKML. Указанный файл c, который я использую, можно найти здесь , и я также добавил его внизу этого поста. Я сохранил файл на своем компьютере и назвал его test.kml
.
. После некоторых исследований мне удалось извлечь определенную c часть файла test.kml
и сохранить результат в DataFrame. Вот мой код:
from pykml import parser
import pandas as pd
filename = 'test.kml'
with open(filename) as fobj:
folder = parser.parse(fobj).getroot().Document
plnm = []
for pm in folder.Placemark:
plnm1 = pm.name
plnm.append(plnm1.text)
df = pd.DataFrame()
df['name'] = plnm
print(df)
name
0 Club house
1 By the lake
Я хотел бы добавить в мой DataFrame новый столбец, соответствующий значению "holeNumber"
. Я попытался добавить следующие строки в мой for
l oop, но безуспешно.
for pm in folder.Placemark:
plnm1 = pm.name
val1 = pm.ExtendedData.holeNumber.value
plnm.append(plnm1.text)
val.append(val1.text)
Я не уверен, как получить доступ к значению из этого указанного c узла. Полученный в результате DataFrame, который я ищу, выглядит следующим образом:
| name | holeNumber |
|-------------|------------|
| Club house | 1 |
| By the lake | 5 |
Любая помощь будет принята с благодарностью.
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>My Golf Course Example</name>
<Placemark>
<name>Club house</name>
<ExtendedData>
<Data name="holeNumber">
<value>1</value>
</Data>
<Data name="holeYardage">
<value>234</value>
</Data>
<Data name="holePar">
<value>4</value>
</Data>
</ExtendedData>
<Point>
<coordinates>-111.956,33.5043</coordinates>
</Point>
</Placemark>
<Placemark>
<name>By the lake</name>
<ExtendedData>
<Data name="holeNumber">
<value>5</value>
</Data>
<Data name="holeYardage">
<value>523</value>
</Data>
<Data name="holePar">
<value>5</value>
</Data>
</ExtendedData>
<Point>
<coordinates>-111.95,33.5024</coordinates>
</Point>
</Placemark>
</Document>
</kml>