Python 如何从字典中创建df,其中一个dict中的值位于另一个dict中,并进行聚合

Python 如何从字典中创建df,其中一个dict中的值位于另一个dict中,并进行聚合,python,pandas,Python,Pandas,我有两本字典的目录。两者都包含一些数据以及开始和停止时间戳。第一个列表包含表示文本序列观察的字典,其中包含开始和停止时间以及元数据。看起来是这样的: 列表_1=[ { “词语”:“嘿,你”, “开始”:3.27, “停止”:4.54, “持续时间”:1.27, “连续计数”:0.0, “连续时间”:1.27, “在前一次话语之间保持沉默”:0, “问题”:0, “代词”:[“你”], }, { “字数”:“, “开始”:7.27, “停止”:7.54, “持续时间”:0.271, “连续计数”:

我有两本字典的目录。两者都包含一些数据以及开始和停止时间戳。第一个列表包含表示文本序列观察的字典,其中包含开始和停止时间以及元数据。看起来是这样的:

列表_1=[
{
“词语”:“嘿,你”,
“开始”:3.27,
“停止”:4.54,
“持续时间”:1.27,
“连续计数”:0.0,
“连续时间”:1.27,
“在前一次话语之间保持沉默”:0,
“问题”:0,
“代词”:[“你”],
},
{
“字数”:“,
“开始”:7.27,
“停止”:7.54,
“持续时间”:0.271,
“连续计数”:1.0,
“连续时间”:1.541,
“在前一次话语之间保持沉默”:2.73,
“问题”:0,
“代词”:[],
},
{
“字数”:“,
“开始”:12.91,
“停止”:13.19,
“持续时间”:0.279,
“连续计数”:0.0,
“连续时间”:0.279,
“在前一次话语之间保持沉默”:5.37,
“问题”:0,
“代词”:[],
},
{
“字数”:“,
“开始”:15.04,
“停止”:15.13,
“持续时间”:0.090,
“连续计数”:0.0,
“连续时间”:0.090,
“上一次说话之间保持沉默”:1.85,
“问题”:0,
“代词”:[],
},
{
“词语”:“你好吗?”,
“开始”:16.04,
“停止”:19.13,
“持续时间”:3.09,
“连续计数”:0.0,
“连续时间”:3.09,
“上一次话语之间的沉默”:0.51,
“问题”:1,
“代词”:[“你”],
},
{
“文字”:“我想已经很晚了”,
“开始”:20.0,
“停止”:21.1,
“持续时间”:1.1,
“连续计数”:1.0,
“连续时间”:4.19,
“上一次话语之间的沉默”:0.47,
“问题”:0,
“代词”:[“i”],
},
]
list_2=[
{“cat”:99,“start”:0.0,“stop”:7.99},
{“cat”:14,“start”:8.0,“stop”:9.99},
{“cat”:10,“start”:10.0,“stop”:12.99},
{“cat”:99,“start”:13.0,“stop”:15.99},
{“猫”:10,“开始”:16.0,“停止”:23.99},
]
list\u 1
中的
start
stop
位于
start
stop
中时,我想聚合
list\u 1
中的dict,并将聚合数据添加到
list\u 2
中的每个dict中

例如,列表_1中的前两个dict的开始和停止时间都在
列表_2中的第一个dict的第一个开始和停止时间内。因此,我想在此逻辑中将前2个
list_1
dict中的数据聚合在一起(注意,我没有使用dict中的所有项目):

  • 单词=加在一起('你好','')
  • 连续计数=最大值(我想要聚合中所有连续计数值中的最大值)
  • 连续时间=总和(全部相加)
  • 言语之间的沉默=总和
  • 问题=总和
  • 代词=加在一起(['you'],[''])
如果
list_1
中的开始/停止范围仅部分位于
list_2
中的开始/停止范围之间,(例如
list_1['start']
,那么我希望将
list_1
中的数据添加到后一个
list_2
字典(其中
list_1['stop']
位于
list\u 2['start']
list\u 2['stop']
)之间

如果
list_1
中的开始/停止范围不在开始/停止
list_2
范围内,则我想将空的
list_1
字典项附加到
list_2
字典中

基本上,我想从提供的数据中得出这一点:

<代码>列表\u 3=[ { “猫”:99, “开始”:0.0, “停止”:7.99, “单词”:[“嘿,你”,“你”], “连续计数”:1.0, “连续时间”:1.27, “言语间的沉默”:2.73, “问题”:0, “代词”:[“你”],[“你”], }, { “猫”:14, “开始”:8.0, “停止”:9.99, “文字”:[…], “连续计数”:0, “连续时间”:0, “说话之间保持沉默”:0, “问题”:0, “代词”:[], }, { “猫”:10, “开始”:10.0, “停止”:12.99, “文字”:[…], “连续计数”:0, “连续时间”:0, “说话之间保持沉默”:0, “问题”:0, “代词”:[], }, { “猫”:99, “开始”:13.0, “停止”:15.99, “单词”:[“”,”“], “连续计数”:0, “连续时间”:0.369, “说话之间保持沉默”:7.22, “问题”:0, “代词”:[“”,”“], }, { “猫”:10, “开始”:16.0, “停止”:23.99, “词语”:[“你好吗?”,“我想已经很晚了”], “连续计数”:1, “连续时间”:7.28, “话语间沉默”:0.98, “问题”:1, “代词”:[“你”],[“我”], }, ]
我提交了一个编辑,添加了一些缺少的字符,并尝试使数据格式更加一致。我希望我理解正确:)谢谢,您的编辑很有帮助。如果我得到了分数,我会批准的。不用担心,看起来它最终获得了批准:)第二个列表不应该再增加一个条目,6个总条目,比如
len(list1)
?@Kenan不,len(list1)可以是任何东西。len(列表_2)和len(列表_3)需要相同。列表_1通过开始/停止时间聚合到len中(列表_3)。我提交了一个编辑以添加一些缺少的字符,并尝试使数据格式更加一致。我希望我能理解这件事