python - 如果坐标对不在列表中,则从数据框中删除

标签 python pandas dataframe

我有my_dataframe:

    data    | lat       | lon |   
------------+-----------------+--
  10        | 1.0       | 3.0
  11        | 2.0       | 4.0
  21        | 9.0       | 3.0

我还有一个 accepted_coordinates = [(1.0, 3.0), (2.0, 4.0)] 列表。 我需要从数据框中删除纬度/经度不在 accepted_coordinates 中的所有行,因此最终答案应该是一个如下所示的数据框:

    data    | lat       | lon |   
------------+-----------------+--
  10        | 1.0       | 3.0
  11        | 2.0       | 4.0

我用 groupbyisin 尝试了一些事情,但不知道该怎么做。

注意:如果两个坐标都在 accepted_coordinates 中但顺序错误,则应删除该行。即,如果有一行坐标 (1.0, 4.0)

最佳答案

我会将 accepted_coordinates 转换为数据帧:

acc_coor = pd.DataFrame(accepted_coordinates, columns=['lat', 'lon'])

mergemy_dataframe :

res = my_dataframe.merge(acc_coor, on=['lat', 'lon'], how='inner')

res
   data  lat  lon
0    10  1.0  3.0
1    11  2.0  4.0

关于python - 如果坐标对不在列表中,则从数据框中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58760327/

相关文章:

python - 无法启用 fail2ban jail sshd

python - 在 pandas 中显示列

python - 如何在python中合并具有不同数据类型的相同值数据框

python - 通过 Beautiful Soup 的链接进行网页抓取

python - 将 json.dump 移植到 StringIO 代码到 python 3

pandas - 提取第一列数据并根据第一列数据更新第二列

r - 查找行中第二大值的列号和值

r - 基于另一列在 DF 上创建迭代器

python - 对序列号应用 pandas groupby 以从每列中获取单个值

python - 在 chainer 中使用数组作为 MNIST 数据的标签