如何遍历 pd.DataFrame.assign() 中的关键字列表?

How do I iterate over list for keyword in pd.DataFrame.assign()?

我无法通过 Pandas 中的问题。我是 python 的新手,所以,这可能是个垃圾问题,但我想我还是问了。 :)

我正在尝试通过遍历标签并替换数据来替换 Dataframe 中的一些列。因为,我想创建一个新的 Dataframe,我认为 assign() 是最好的选择。 问题是我想遍历标签并将生成的字符串用作分配函数的关键字。

labels_list = ["Label1","Label2","Label3"]

for label in labels_list:
    df3 = df1.assign(label=df2[label])

它的作用是,它只是将 df2 中的列附加到 df3 末尾的循环中的标签。 如果我像这样直接从列表中插入字符串:

df3 = df1.assign(label1=df2[label1])

它正确地完成了工作。 有谁知道我为什么会这样以及如何解决这个问题?

感谢

使用解包:

df1 = pd.DataFrame()
df2 = pd.DataFrame(np.ones((5, 3)), columns=labels_list)
df3 = df1.assign(**{k:df2[k] for k in labels_list})
print(df3)

输出:

   Label1  Label2  Label3
0     1.0     1.0     1.0
1     1.0     1.0     1.0
2     1.0     1.0     1.0
3     1.0     1.0     1.0
4     1.0     1.0     1.0