我有一个数据框,其中每一行都有一个开始时间和一个结束时间。每行也有一个他们所属的组。我想要一个新列,以秒为单位给出该组中所有时间的总和。
例如,如果我们有一个如下所示的组:
id1: |----|
id2: |-----|
id3: |--------|
. . . . . . . . . . .
time -> 12:00 12:04 12:07 12:10
Run Code Online (Sandbox Code Playgroud)
然后对于属于该组的所有行将获得 4+3 分钟 = 420 秒的总和时间
如果它们完全重叠,那么我们会得到这样的场景:
id1: |--------|
id2: |--------|
. . . . . . . . . . .
time -> 12:00 12:04 12:07 12:10
Run Code Online (Sandbox Code Playgroud)
这会给我们结果 4 分钟 = 240 秒。
下面是一些虚拟数据:
import pandas as pd
ids = [x for x in range(10)]
group = [0, 1, 1, 2, 2, 3, 4, …Run Code Online (Sandbox Code Playgroud) 我有一个列表列表,其中每个列表与分数/重量相关联.我想通过从第一个列表中随机选择来生成一个新的列表列表,以便那些得分较高的列表更频繁地出现.当population只是一个普通的列表时,下面的行工作正常.但我希望将它列为清单列表.
population = [['a','b'],['b','a'],['c','b']]
list_of_prob = [0.2, 0.2, 0.6]
population = np.random.choice(population, 10, replace=True, p=list_of_prob)
Run Code Online (Sandbox Code Playgroud)
这将给出输出 ValueError: a must be 1-dimensional
我有一个 DAG(有向无环图),它由边列表表示,例如
edges = [('a','b'),('a','c'),('b','d')]
Run Code Online (Sandbox Code Playgroud)
将给出图表
a - > b -> d
|
v
c
Run Code Online (Sandbox Code Playgroud)
我正在执行许多操作,我必须检查两个节点是否位于同一路径上(b并且d位于同一路径上,b而 和c不是来自上面的示例),这反过来又减慢了我的程序。我希望我能以某种方式遍历该图一次并保存所有路径,这样我就可以在恒定的时间内检查它。
这种加速可能吗?我将如何在 python 中实现它?
编辑:请注意,我需要检查两个方向,因此如果我有一对节点,(a,b)我需要检查atob和bto a。
python algorithm graph-traversal directed-acyclic-graphs graph-algorithm