擅长:python、mysql、java
<p>按照您正在执行的方法,代码没有SomeDude的代码干净,但是工作:</p>
<pre><code>def get_sequence(row, df):
idx = row.name
output = []
for i in range(-2, 3):
if 0 <= idx+i < df.shape[0]:
output.append((df.iloc[idx+i].x, df.iloc[idx+i].y))
else:
output.append((np.nan, np.nan))
return output
</code></pre>
<pre><code>df["sequence"] = df.apply(lambda row: get_sequence(row, df), axis=1)
0 [(nan, nan), (nan, nan), (1, 0), (5, 1), (3, 0)]
1 [(nan, nan), (1, 0), (5, 1), (3, 0), (2, 0)]
2 [(1, 0), (5, 1), (3, 0), (2, 0), (5, 1)]
3 [(5, 1), (3, 0), (2, 0), (5, 1), (6, 0)]
4 [(3, 0), (2, 0), (5, 1), (6, 0), (1, 0)]
5 [(2, 0), (5, 1), (6, 0), (1, 0), (4, 0)]
6 [(5, 1), (6, 0), (1, 0), (4, 0), (3, 1)]
7 [(6, 0), (1, 0), (4, 0), (3, 1), (nan, nan)]
8 [(1, 0), (4, 0), (3, 1), (nan, nan), (nan, nan)]
dtype: object
</code></pre>