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

问题描述 投票:0回答:1

我无法通过熊猫问题。我是python的新手,所以这可能是转储问题,但我还是想问一下。 :)

我正在尝试通过遍历标签并替换数据来替换数据框中的许多列。因为我想创建一个新的数据框,所以我认为assign()是最佳选择。问题是我想遍历标签,并将结果字符串用作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])

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

Thx

python pandas dataframe assign
1个回答
0
投票

使用拆包:

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
© www.soinside.com 2019 - 2024. All rights reserved.