Python无键值对嵌套字典如何展平为带word、时间列的DataFrame
三层嵌套列表转结构化DataFrame实现方案
问题场景
需要将无命名键的三层嵌套列表拆分为结构化DataFrame,输出三列分别为word(单词内容)、start_time(单词开始时间)、end_time(单词结束时间),原始嵌套列表存储在变量word_timestamps中,结构示例:
[[['hello', 3.06, 3.32]], [['hi', 4.2, 4.32], ['can', 4.54, 4.62], ['i', 4.66, 4.7], ['please', 4.74, 4.86], ['speak', 4.9, 5.04], ['to', 5.06, 5.14], ['ashley', 5.2, 5.56]], [['yeah', 6.84, 6.94], ['may', 7.04, 7.12], ['i', 7.12, 7.12], ['ask', 7.18, 7.28], ["who's", 7.36, 7.46], ['calling', 7.54, 7.86]]]
常规带键结构的展平库(如flatdict)无法处理该无键嵌套结构。
实现代码
通过两层列表推导式直接展平三层嵌套结构,传入DataFrame构造函数即可:
import pandas as pd df_word_timestamps = pd.DataFrame( [value for sublist in word_timestamps for value in sublist], columns=["word", "start_time", "end_time"] )
输出效果
生成的DataFrame格式示例:
word start_time end_time 0 hello 3.06 3.32 1 hi 4.20 4.32 2 can 4.54 4.62 3 i 4.66 4.70 4 please 4.74 4.86 ... 1183 bye 402.88 403.04
该结果可直接用于后续和存储说话人信息的DataFrame做时间区间匹配,拼接生成带说话人标签的对话转写文本。
内容的提问来源于stack exchange,提问作者jtoepp
相关产品推荐
相关产品推荐

