我有一个带有 2 列“类型”和“符号”的熊猫数据框,如下所示
type sign
0 open A
1 open B
2 open D
3 close B
4 close D
5 open B
6 close B
7 close A
Run Code Online (Sandbox Code Playgroud)
"A" + "open" 表示事件 A 已经开始发生。"A" + "close" 表示事件 A 已经停止。当时间是一个主要问题时,我需要对其进行矢量化(该列表实际上大约有 4000 万行)。有点像单热编码,但当且仅当事件是“活动的”时,我需要“1”才能存在。例如,对于这种情况,结果应该是:
A B C D type sign
0 1 0 0 0 open A
1 1 1 0 0 open B
2 1 1 0 1 open D
3 1 0 0 1 close B
4 1 0 0 …Run Code Online (Sandbox Code Playgroud) 我需要创建一个大小为 N 的数字 0-9 的所有排列的数组(输入,1 <= N <= 10)。
\n我试过这个:
\nnp.array(list(itertools.permutations(range(10), n)))\nRun Code Online (Sandbox Code Playgroud)\n对于 n=6:
\ntimeit np.array(list(itertools.permutations(range(10), 6)))\nRun Code Online (Sandbox Code Playgroud)\n在我的机器上给出:
\n68.5 ms \xc2\xb1 881 \xc2\xb5s per loop (mean \xc2\xb1 std. dev. of 7 runs, 10 loops each)\nRun Code Online (Sandbox Code Playgroud)\n但它根本不够快。\n我需要它低于 40 毫秒。
\n注意:\n我无法从 numpy 版本 1.22.3 更改机器
\n我有 2 个带有一些通用索引的数据帧,有些则不是:
df1
DATA
1 1
2 2
3 3
4 4
5 5
df2
DATA
3 3
4 4
5 5
6 6
7 7
Run Code Online (Sandbox Code Playgroud)
我想对它们求和/取最大值(对于不同的列,我实际上需要两者),并将缺失的索引视为 0。在这个例子中,结果应该是:
df_results
DATA
1 1
2 2
3 6
4 8
5 10
6 6
7 7
Run Code Online (Sandbox Code Playgroud)
其中 3,4,5 相加,但其余保持不变。
谢谢!