切片存在于 pandas 数据框中的列表项

Slicing a list item that exists in a pandas dataframe

我有一个列表(名为 split_dfs),其中包含多个数据框,每个数据框有 100 行。这些数据框每个都包含带有存储在列表中的坐标数据的列。即有一个名为 Destination Coordinates 的列,每一行都有诸如 [41.67907634659514, -73.88281655538246, 0.0] 之类的数据。它们看起来如下:

我正在尝试计算两个坐标列之间的英里差,但很明显,其中一个坐标列有 3 个点(0 表示高度),这会导致计算错误。重申一下,坐标列中的每一行都包含一个列表。

我如何遍历列表中的每个数据帧并对目标坐标列进行切片以去除第 3 个点并仅保留每行中的前 2 个点。我尝试了以下方法:

for i in split_dfs:
    for x in i["Destination Coordinates"]:
        x=x[:2]

这个returns'NoneType object is not subscriptable'。如果我在每个数据帧的列表理解中单独执行转换,我尝试执行的转换即:

first_group["Destination Coordinates"]=[i[:2] for i in first_group["Destination Coordinates"]]

我希望能够在循环中执行此操作,而不是为每个数据帧单独编写代码。

谢谢。

您不能以这种方式更改数据框的元素。

你想要的大概是:

for i in split_dfs:
    i['Destination Coordinates'] = i['Destination Coordinates'].transform(
        lambda x: x[:2] if isinstance(x, list) else x)