我对在 pandas 的列中向前填充单个值和多个值感兴趣。使用以下数据框:
import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
df
0 1 2
0 1 2 3
1 4 NaN NaN
2 NaN NaN 9
Run Code Online (Sandbox Code Playgroud)
正向填充将产生:
df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
df.fillna(method='ffill')
df
0 1 2
0 1 2 3
1 4 2 3
2 4 2 9
Run Code Online (Sandbox Code Playgroud)
但是,我需要一种类似填充的方法来执行此操作,或者如果上面的值彼此连续,则复制所有上述值:
df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, 5, 9], [None,None,None])
df
0 1 2 …Run Code Online (Sandbox Code Playgroud) 给定 r 为 4 的 itertools 组合:
from itertools import combinations
mylist = range(0,35)
r = 4
combinationslist = list(combinations(mylist, r))
Run Code Online (Sandbox Code Playgroud)
这将输出:
(0, 1, 2, 3)
(0, 1, 2, 4)
(0, 1, 2, 5)
(0, 1, 2, 6)
(0, 1, 2, 7)
(0, 1, 2, 8)
(0, 1, 2, 9)
...
(30, 31, 32, 33)
(30, 31, 32, 34)
(30, 31, 33, 34)
(30, 32, 33, 34)
(31, 32, 33, 34)
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我们将列表分成 10 个块,我们能否找到这些块中的第 n 个组合,但不生成所有组合。或者换句话说,如果该位置可以被 x 整除。
问题之一是头寸将达到数十亿,并且可能无法推导出 n …