gpt4 book ai didi

python - 当两者的索引不同时,将一个 pandas 数据框的列添加到另一个

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

我是 python 的新手。我有两个索引不同的 Pandas 数据框。我想将一列从一列复制到另一列。Dataframe 1:保存每张图片所属的id和class

      ID  index  class
0 10472 10472 0
1 7655 7655 0
2 6197 6197 0
3 9741 9741 0
4 9169 9169 0

Dataframe 2:在索引中保存图像的id,在数据列中保存图像数据

                                                    data
index
5882 [[[255, 255, 255, 0], [255, 255, 255, 0], [255...
360 [[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0...
1906 [[[255, 255, 255, 0], [255, 255, 255, 0], [255...
3598 [[[255, 255, 255, 0], [232, 232, 247, 25], [34...
231 [[[255, 255, 255, 0], [234, 234, 234, 0], [57,...

我想遍历 dataframe1 并获取图像 id,并在 dataframe 2 中查找索引中的匹配 id,然后将“数据”列复制到 dataframe1。我该怎么做(以性能最优的方式)?

最佳答案

首先匹配数据需要相同的类型,所以如果得到不同的:

print (df1['index'].dtype)    
int64
print (df2.index.dtype)
object

有 2 种可能的解决方案 - 通过以下方式将索引转换为整数:

df2.index = df2.index.astype(int)

或列到字符串:

df1['index'] = df1['index'].astype(str)

然后使用mapdf2 中的 data 列:

df1['data'] = df1['index'].map(df2['data']) 

或者如果需要从 df2 添加多个列(例如在真实数据中)使用 join :

df1 = df1.join(df2, on=['index'])

关于python - 当两者的索引不同时,将一个 pandas 数据框的列添加到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50584414/

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