1
我有以下的大熊猫系列订购点的坐标:熊猫总订购点坐标
>>> import pandas as pd
>>> d=pd.Series([(1,1),(2,2),(3,4),(4,6)])
>>> d
0 (1, 1)
1 (2, 2)
2 (3, 4)
3 (4, 6)
dtype: object
>>>
我想创造出一系列由这些点形成的线段。在这种情况下,会有3个线段(点0和1,1,1和2以及2和3之间)。
我可以通过将原始系列与其“移位”版本连接起来,第一个空值,然后将函数应用于两列。
>>> pd.concat([d.shift(),d],1).dropna().apply(lambda x:tuple([x[0], x[1]]),1)
1 ((1, 1), (2, 2))
2 ((2, 2), (3, 4))
3 ((3, 4), (4, 6))
dtype: object
>>>
是否有更好的方法来做到这一点?
非常好的解决方案。 – jezrael
@jezrael tyvm :-) – piRSquared
不错。由于'zip'在最短的迭代器耗尽后就会切断,因此可以通过使第一个条目仅为'd'来节省几个字符。这虽然有点不太明确。 – root