Pandas 使用字典创建新列

Pandas create new column using dictionary

我正在尝试通过在字典中查找值来组合现有列,从而在我的一个数据框中创建一个新列。

values["-R1-"] 和 values["-R2-"] 使用 pysimplegui 通过列表框分配一个值,它是 df 中所有列标题的列表。

如果我把它放在第一行,它可以正常工作并创建一个新列。

df['Unique_ID_Test'] = df["Account Code] + df["Transaction Id] + df['Abs'].astype(str)

但是,如果我尝试使用字典查找值,它会给出以下错误消息,这些消息应该会产生相同的结果。

df['Unique_ID_Test'] = df[values["-R1-"]] + df[values["-R2-"]] + df['Abs'].astype(str)

ValueError: Expected a 1D array, got an array with shape (5253, 5255)

有谁知道为什么这不起作用?错误信息似乎并没有特别有用(对我来说)。

列表框代码摘录供参考

        [pg.Listbox(values=list, size=(60, 15), key='-Amt-')],
        [pg.Listbox(values=list, size=(60, 15), key="-R1-")],
        [pg.Listbox(values=list, size=(60, 15), key="-R2-")],

上面的问题由Jason Yang回答。