簡體   English   中英

沒有鍵值對的 Python 拆分嵌套字典

[英]Python Split Nested Dictionary with No Key Value Pairs

我有一個沒有鍵值對的嵌套字典。 我試圖將它們分成具有單獨列的數據幀,並且不需要保留原始結構。 目的是將每個可見行分隔為數據end_time的實際行,其中列名為wordstart_timeend_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM