我有以下时间序列测量两列中起点和终点之间的变化。我想l使用矢量化方法而不是 Pandas 中的迭代来计算列,记录从开始到结束的路径。请问有没有一种简单的方法来计算列?ffill()和其他填充技术天真地似乎无法解决开始和结束位置之间的空白。有没有办法通过条件ffill/bfill来帮助解决这个问题?
注:s和e对应起始位置和结束位置。我想构建一个l仅在s和e位置之间但不包括开始位置(不包括没有开始和结束的位置)的序列。
示例如下所示,我们要填充第 0-2 行,但l不包括第一行。还想确保在我们有另一个s.
s e l
0 1.0 NaN NaN
1 NaN NaN 1.0
2 NaN 1.0 1.0
3 NaN NaN NaN
4 NaN NaN NaN
5 NaN NaN NaN
6 NaN NaN NaN
7 1.0 NaN NaN
8 1.0 1.0 1.0
9 1.0 1.0 1.0
10 1.0 1.0 1.0
11 NaN 1.0 1.0
12 NaN …Run Code Online (Sandbox Code Playgroud) 我有两个清单
a = [1,2,3]
b = []
Run Code Online (Sandbox Code Playgroud)
如果满足某个条件,我想从列表 a 中移动一个元素。
a = [1,3]
b = [2]
Run Code Online (Sandbox Code Playgroud)
下面的代码显示了一个示例,但是,我想在单个循环中执行此操作。我如何更有效地做到这一点?
a = [1,2,3]
b = []
pop_list = []
for i in range(len(a)):
if a[i] == 2:
print("pop:", a[i])
pop_list.append(i)
for i in range(len(pop_list)):
b.append(a.pop(pop_list[i]))
# Reset pop_list
pop_list=[]
Run Code Online (Sandbox Code Playgroud)
理想情况下,我不会生成新列表 b。