我无法通过熊猫问题。我是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
使用拆包:
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