gpt4 book ai didi

python - 比较两个数据框之间的元素并在相等的情况下添加列

转载 作者:太空宇宙 更新时间:2023-11-04 08:24:07 25 4
gpt4 key购买 nike

考虑如下两个数据框:

import pandas as pd

df_rp = pd.DataFrame({'id':[1,2,3,4,5,6,7,8], 'res': ['a','b','c','d','e','f','g','h']})

df_cdr = pd.DataFrame({'id':[1,2,5,6,7,1,2,3,8,9,3,4,8],
'LATITUDE':[-22.98, -22.97, -22.92, -22.87, -22.89, -22.84, -22.98,
-22.14, -22.28, -22.42, -22.56, -22.70, -22.13],
'LONGITUDE':[-43.19, -43.39, -43.24, -43.28, -43.67, -43.11, -43.22,
-43.33, -43.44, -43.55, -43.66, -43.77, -43.88]})

我必须做的:

  • 将每个 df_rp['id'] 元素与每个 df_cdr['id'] 元素进行比较;
  • 如果相同,我需要在数据结构(列表、系列等)中添加与id在同一行的纬度和经度,不重复id。

下面是我需要如何对数据进行分组的示例:

1:[-22.98,-43.19],[-22.84,-43.11] 
2:[-22.97,-43.39],[-22.98,-43.22]
3:[-22.14,-43.33],[-22.56,-43.66]
4:[-22.70,-43.77]
5:[-22.92,-43.24]
6:[-22.87,-43.28]
7:[-22.89,-43.67]
8:[-22.28,-43.44],[-22.13,-43.88]

我很难选择哪种数据结构最适合这种情况(就像我在示例中所做的那样,看起来像一个字典,但会有多个字典)以及如何在不重复的情况下将纬度和对数添加到对ID。我感谢任何帮助。

最佳答案

我们需要 agg 第二个 df ,然后 reindex 将其分配回来

df_rp['L$L']=df_cdr.drop('id',1).apply(tuple,1).groupby(df_cdr.id).agg(list).reindex(df_rp.id).to_numpy()
df_rp
Out[59]:
id res L$L
0 1 a [(-22.98, -43.19), (-22.84, -43.11)]
1 2 b [(-22.97, -43.39), (-22.98, -43.22)]
2 3 c [(-22.14, -43.33), (-22.56, -43.66)]
3 4 d [(-22.7, -43.77)]
4 5 e [(-22.92, -43.24)]
5 6 f [(-22.87, -43.28)]
6 7 g [(-22.89, -43.67)]
7 8 h [(-22.28, -43.44), (-22.13, -43.88)]

关于python - 比较两个数据框之间的元素并在相等的情况下添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58984603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com