我有一個沒有鍵值對的嵌套字典。我試圖將它們分成具有單獨列的資料幀,并且不需要保留原始結構。我們的目的是與柱被任命為每個可見行中的資料幀分成的實際行word,start_time和end_time。我試圖用 將它壓平flatdict,但由于沒有命名鍵,它不起作用。
這是存盤在變數中的嵌套字典的示例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]]]
我可以使用這種格式成功查看單個“行” word_timestamps[0]。這將回傳:
[['hello', 3.06, 3.32]]
或者我可以使用word_timestamps[0][0][0]which returns訪問單個單詞'hello'。
如何展平字典并擺脫整個結構?
編輯:在下面添加了所有內容。
我使用[value for sublist in word_timestamps for value in sublist]which 回傳與下面相同的答案。使用的完整代碼是:
df_word_timestamps = pd.DataFrame([value for sublist in word_timestamps for value in sublist], columns =["word", "from", "to"])
結果是:
word from to
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
... ... ... ...
1179 right 399.98 400.08
1180 bye-bye 400.64 400.86
1181 thanks 401.70 401.92
1182 bye 402.02 402.16
1183 bye 402.88 403.04
我這樣做的原因是我可以在匹配的開始/停止時間加入第二個資料幀。第二個資料幀包含說這些話的人。我可以一起創建帶標簽的成績單。
uj5u.com熱心網友回復:
您基本上是在“添加”一組子串列。
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]]]
combine = sum(word_timestamps, [])
print(combine)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/357891.html
