首页 > 解决方案 > 通过索引将列从 1 个数据帧添加到另一个链接的正确语法

问题描述

首先,由于数据集很大,我试图将其作为矢量操作来执行。

import pandas as pd

sub_list = [{"uniqueId": "123456", "ref_idx": 1},
            {"uniqueId": "123457", "ref_idx": 2},
            {"uniqueId": "123458", "ref_idx": 3},
            {"uniqueId": "123459", "ref_idx": 4},
            {"uniqueId": "123460", "ref_idx": 5},
            {"uniqueId": "123461", "ref_idx": 6}]

primary_list = [{"uniqueId": "123456"},
                {"uniqueId": "123457"},
                {"uniqueId": "123458"},
                {"uniqueId": "123459"},
                {"uniqueId": "123460"},
                {"uniqueId": "123461"},
                {"uniqueId": "123462"},
                {"uniqueId": "123463"},
                {"uniqueId": "123464"},
                {"uniqueId": "123465"}]

subset_df = pd.DataFrame(sub_list)
primary_df = pd.DataFrame(primary_list)

subset_df.set_index("uniqueId", inplace=True)
primary_df.set_index("uniqueId", inplace=True)

primary_df["ref_idx"] = primary_df.loc([subset_df.index]["ref_idx"])

问题在于最后一条语句。我已经尝试了如何从subset_df(ref_idx 值)获取切片并将其作为新列填充到primary_df 的各种迭代。当然,那些没有出现在subset_df中的记录在primary_df中不会有值(NaN)。没关系。

只是不确定语法是否正确。

我看到像 TypeError: list indices must be integers or slices, not str; 这样的错误。call () 接受 1 到 2 个位置参数,但给出了 3 个,当一个分隔 ([subset_df.index], ["ref_idx"])

基本上,使用索引来限定数据但返回 ref_idx 值。

想法?

标签: pythonpandasindexingslice

解决方案


推荐阅读