我有一个看起来像这样的列:
ID len range_cover
0 A0A075B734 347.0 [36, 134, 136, 283]
1 A0A087X1C5 515.0 [22, 328, 347, 514]
2 A0A1B0GTQ1 446.0 [22, 116, 168, 496]
3 A0A1W2PN81 502.0 [22, 46, 48, 117, 119, 149, 152, 160, 162, 230]
4 Q494W8 412.0 [22, 36, 80, 84, 88, 91, 96, 128, 131, 139, 14...
.. ... ... ...
165 Q9UQ90 795.0 [303, 564]
166 Q9Y210 931.0 [0, 930]
而且我想将列表range_cover按成对的数字划分,但我不知道该怎么做。所有列表都可以被二整除,所以这对所有列表都是可能的。
这是预期的输出:
range_cover
[[36, 134], [136, 283]]
[[22, 328], [347, 514]]
[[22, 116], [168, 496]]
[[22, 46], [48, 117], [119, 149], [152, 160], [162, 230]]
[[22, 36], [80, 84], [88, 91], [96, 128], [131, 139], [14...
...
[303, 564]
[0, 930]
我考虑过使用 zip,例如:
df2['tup'] = df2.apply(lambda x: list(zip(x.range_cover)), axis=1)
但我不知道如何告诉函数将第一个数字与第二个数字“压缩”,依此类推。我也想过使用 .replace,但我需要该函数每 2 个数字替换一个字符。
欢迎任何帮助或建议!干杯