我正在处理从 Apple Health 作为 xml 文件导出的数据。
workouts = [node for node in nodes if node.tag == 'Workout']
ET.dump(workouts[0])
告诉我有一个子元素,WorkoutStatistics。
<Workout creationDate="2018-08-12 08:58:56 -0600" duration="7.757684383789698" durationUnit="min" endDate="2018-08-12 08:58:55 -0600" sourceName="Strongur" sourceVersion="9.2.0" startDate="2018-08-12 08:51:10 -0600" workoutActivityType="HKWorkoutActivityTypeTraditionalStrengthTraining">
<WorkoutStatistics endDate="2018-08-12 08:58:55 -0600" startDate="2018-08-12 08:51:10 -0600" sum="30.7305" type="HKQuantityTypeIdentifierActiveEnergyBurned" unit="Cal" />
</Workout>
我为父级创建数据框如下...
workout_list = [x.attrib for x in root.iter('Workout')]
这提供了来自父数据的结果,其中包含正确的列减去我稍后会做的一些格式设置。同样,我可以将子数据放入 df 中。但是,我不确定如何将子 WorkoutStatistics 数据也包含在数据框中。
如何创建包含子数据和父数据的数据框?是否有匹配父子数据的键,以便它只会在父子匹配的地方提取数据?或者我可以使用 startDate 和 endDate 来匹配记录吗?如果是这样,我该如何在合并中做到这一点?谢谢!