![](/img/trans.png)
[英]Best way to split key:value pair into two pairs in a dictionary - python
[英]Python Split Nested Dictionary with No Key Value Pairs
我有一個沒有鍵值對的嵌套字典。 我試圖將它們分成具有單獨列的數據幀,並且不需要保留原始結構。 目的是將每個可見行分隔為數據end_time
的實際行,其中列名為word
、 start_time
和end_time
。 我試圖用flatdict
把它flatdict
,但由於沒有命名鍵,它不起作用。
這是存儲在變量word_timestamps
中的嵌套字典的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]]
或者我可以使用返回'hello'
word_timestamps[0][0][0]
訪問單個單詞。
如何展平字典並擺脫整個結構?
編輯:在下面添加了所有內容。
我使用[value for sublist in word_timestamps for value in sublist]
返回與下面相同的答案。 使用的完整代碼是:
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
我這樣做的原因是我可以在匹配的開始/停止時間加入第二個數據幀。 第二個數據幀包含說這些話的人。 我可以一起創建帶標簽的成績單。
您基本上是在“添加”一組子列表。
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.