- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我希望有人能给我一个想法或解决我遇到的问题。我一直在试图弄清楚如何根据开始时间
、结束时间
和周期
找到一个玩家与另一个玩家一起玩的百分比(或我没有提到的任何其他统计数据)。我可以在数据透视表中对每个玩家的持续时间
进行求和,以查看玩家的完整冰场时间,但对于我的一生,我似乎无法弄清楚另一个。无论是 R、Excel 还是 Python 脚本,我都已经用尽了我的想法。我知道这不是一个直接的脚本问题,但我想不出更好的地方来提出这个问题。在示例 1 中,我可以在我提供的一小段数据中清楚地看到 Suter 和 Dumba 一起玩了两次。但将其绘制在图表上或仅找到百分比是我寻求任何想法的地方。以下是我如何访问 OnIce 数据的 2 个示例。
示例 1. 在周期/比赛结束时,我可以获得之前的 Line Shift 数据。玩家的姓氏将在整个 df 中多次出现。
LastName StartTime EndTime Duration ShiftNumber Period
Foligno 0:00 0:40 0:40 1 1
Suter 0:00 0:40 0:40 1 1
Staal 0:00 0:40 0:40 1 1
Niederreiter 0:00 0:40 0:40 1 1
Dubnyk 0:00 20:00 20:00 1 1
Dumba 0:00 0:40 0:40 1 1
Zucker 0:40 1:26 0:46 1 1
Koivu 0:40 1:34 0:54 1 1
Murphy 0:40 1:26 0:46 1 1
Brodin 0:40 1:26 0:46 1 1
Granlund 0:40 1:39 0:59 1 1
Reilly 1:26 2:09 0:43 1 1
Winnik 1:26 2:18 0:52 1 1
Coyle 1:34 2:16 0:42 1 1
Stewart 1:39 2:13 0:34 1 1
Dumba 2:09 2:39 0:30 2 1
Suter 2:09 2:39 0:30 2 1
示例 2。我可以每隔几秒运行一个脚本,并同时将 OnIce 中的玩家 ID 保存到 csv 中。
HomePlayerId HomeDuration
8475744 94
8471702 74
8477944 69
8475163 74
8474651 623
8477043 74
HomePlayerId HomeDuration
8475744 111
8471702 91
8477944 86
8475163 91
8474651 640
8477043 91
最佳答案
下面的简单 Python 代码计算每对玩家的重叠时间总量。核心思想是,给定玩家 1 的 (start1, end1) 间隔和玩家 2 的 (start2, end2) ,那么这两个间隔的重叠是
overlap = min(end1, end2) - max(start1, start2)
如果重叠
<= 0,则这些间隔没有重叠。我们需要对每对玩家的每对间隔执行该计算。
from itertools import combinations, product
#LastName StartTime EndTime Duration ShiftNumber Period
data = '''\
Foligno 0:00 0:40 0:40 1 1
Suter 0:00 0:40 0:40 1 1
Staal 0:00 0:40 0:40 1 1
Niederreiter 0:00 0:40 0:40 1 1
Dubnyk 0:00 20:00 20:00 1 1
Dumba 0:00 0:40 0:40 1 1
Zucker 0:40 1:26 0:46 1 1
Koivu 0:40 1:34 0:54 1 1
Murphy 0:40 1:26 0:46 1 1
Brodin 0:40 1:26 0:46 1 1
Granlund 0:40 1:39 0:59 1 1
Reilly 1:26 2:09 0:43 1 1
Winnik 1:26 2:18 0:52 1 1
Coyle 1:34 2:16 0:42 1 1
Stewart 1:39 2:13 0:34 1 1
Dumba 2:09 2:39 0:30 2 1
Suter 2:09 2:39 0:30 2 1
'''.splitlines()
def to_secs(ms):
''' Convert a mm:ss string to seconds '''
m, s = map(int, ms.split(':'))
return 60 * m + s
# Store a list of (start, end) times for each player
players = {}
for row in data:
name, start, end = row.split(None, 3)[:3]
times = to_secs(start), to_secs(end)
players.setdefault(name, []).append(times)
for t in players.items():
print(t)
print()
# Determine the amount of overlapping time for each pair of players
for p1, p2 in combinations(sorted(players), 2):
total = 0
# Check each pair of times for this pair of players
for t1, t2 in product(players[p1], players[p2]):
# Compute the overlap in this pair of times and
# add it to the total for this pair of players
start, end = zip(t1, t2)
total += max(0, min(end) - max(start))
if total:
print(p1, p2, total)
输出
('Foligno', [(0, 40)])
('Suter', [(0, 40), (129, 159)])
('Staal', [(0, 40)])
('Niederreiter', [(0, 40)])
('Dubnyk', [(0, 1200)])
('Dumba', [(0, 40), (129, 159)])
('Zucker', [(40, 86)])
('Koivu', [(40, 94)])
('Murphy', [(40, 86)])
('Brodin', [(40, 86)])
('Granlund', [(40, 99)])
('Reilly', [(86, 129)])
('Winnik', [(86, 138)])
('Coyle', [(94, 136)])
('Stewart', [(99, 133)])
Brodin Dubnyk 46
Brodin Granlund 46
Brodin Koivu 46
Brodin Murphy 46
Brodin Zucker 46
Coyle Dubnyk 42
Coyle Dumba 7
Coyle Granlund 5
Coyle Reilly 35
Coyle Stewart 34
Coyle Suter 7
Coyle Winnik 42
Dubnyk Dumba 70
Dubnyk Foligno 40
Dubnyk Granlund 59
Dubnyk Koivu 54
Dubnyk Murphy 46
Dubnyk Niederreiter 40
Dubnyk Reilly 43
Dubnyk Staal 40
Dubnyk Stewart 34
Dubnyk Suter 70
Dubnyk Winnik 52
Dubnyk Zucker 46
Dumba Foligno 40
Dumba Niederreiter 40
Dumba Staal 40
Dumba Stewart 4
Dumba Suter 70
Dumba Winnik 9
Foligno Niederreiter 40
Foligno Staal 40
Foligno Suter 40
Granlund Koivu 54
Granlund Murphy 46
Granlund Reilly 13
Granlund Winnik 13
Granlund Zucker 46
Koivu Murphy 46
Koivu Reilly 8
Koivu Winnik 8
Koivu Zucker 46
Murphy Zucker 46
Niederreiter Staal 40
Niederreiter Suter 40
Reilly Stewart 30
Reilly Winnik 43
Staal Suter 40
Stewart Suter 4
Stewart Winnik 34
Suter Winnik 9
关于python - 绘制一起玩的时间百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47687333/
我学习 SDL 二维编程已有一段时间了,现在我想创建一个结合使用 SDL 和 OpenGL 的程序。我是这样设置的: SDL_Init(SDL_INIT_VIDEO); window = SDL_Cr
尝试查找可在地块中使用的不同类型项目的列表 来自不同样本的投影类型: projection = list(type = "equirectangular") projection = list(typ
我正在尝试使用 Java Graphics API 绘制 GIF,但无法使用下面的代码成功绘制 GIF。仅绘制 GIF 的第一张图像或缩略图,但不播放。 public void paintCompon
我目前正在使用 JFrame 并尝试绘制一个矩形,但我不知道如何执行代码 paint(Graphics g),如何获取 Graphics 对象? package com.raggaer.frame;
这个领域的新手,希望得到一些帮助。 我有一个"Missile.java" 类,我在那里画东西。我想绘制一个 ImageView,我正在使用以下代码: ImageView v = (ImageView)
下面列出了圆形的例子 这是我的 JavaScript 代码。 最佳答案 假设您的 randomColor 是正确的,您只需要: 从 canvas.onclick 中移除 context.clearR
我在绘制和缩放 ImageView 时遇到问题。请帮帮我.. 当我画一些东西然后拖动或缩放图像时 - 绘图保留在原处,如您在屏幕截图中所见。而且我只需要简单地在图片上绘图,并且可以缩放和拖动这张图片。
我们可以在形式之外绘制图像和文本...我的意思是在字面上... 我知道问这个问题很愚蠢但是我们能不能... 最佳答案 您可以通过创建表单并将其 TransparentColor 属性设置为背景色来“作
我在绘制/布局期间收到 3 个对象分配警告 super.onDraw(canvas); canvas.drawColor(Color.WHITE); Paint textPaint = new Pai
我有一个示例时间序列数据框: df = pd.DataFrame({'year':'1990','1991','1992','1993','1994','1995','1996',
我试图想出一种简洁的方法来绘制 R 数据框中所有列的 GridView 。问题是我的数据框中既有离散值又有数值。为简单起见,我们可以使用 R 提供的名为 iris 的示例数据集。我会使用 par(mf
我有一个由 10 列和 50 行组成的 data.frame。我使用 apply 函数逐列计算密度函数。现在我想绘制我一次计算的密度。 换句话说,而不是绘图... plot(den[[1]]) plo
我想知道我们如何才能在第一个和第二个组件之外绘制个人,如下所示: 最佳答案 这可能有效: pc.cr <- princomp(USArrests, cor = TRUE) pairs(pc.cr$lo
我是Pandas和matplotlib的新手,想绘制此DataFrame season won team matches pct_won 0 20
我正在尝试为 distplot 子图编写一个 for 循环。 我有一个包含许多不同长度列的数据框。 (不包括 NaN 值) fig = make_subplots( rows=len(asse
我想创建一个具有密度的 3d 图。 我使用函数 density 首先为特定的 x 值创建一个二维图,然后该函数创建密度并将它们放入 y 变量中。现在我有第二组 x 值并将其再次放入密度函数中,然后我得
全部, 我一直在研究全局所有 MTB 步道的索引。我是 Python 人,所以对于所有涉及的步骤,我都尝试使用 Python 模块。 我能够像这样从 OSM 立交桥 API 中获取关系: from O
我正在使用 e1071 包中的支持向量机对我的数据进行分类,并希望可视化机器实际如何进行分类。但是,在使用 plot.svm 函数时,出现无法解决的错误。 脚本: library("e1071") d
我制作了以下图表,它是使用 xts 对象创建的。 我使用的代码很简单 plot(graphTS1$CCLL, type = "l", las = 2, ylab = "(c)\nCC for I
在绘制状态图时,您如何知道哪些状态放在框中,哪些状态用于转换箭头?我注意到转换也是状态。 我正在查看 this page 上的图 1 : 最佳答案 转换不是状态。转换是将对象从一种状态移动到下一种状态
我是一名优秀的程序员,十分优秀!