抱歉,我是新手。

我现在正在和熊猫玩耍。我想在存储在列表中的两个数据框中放置一个特定的列。这就是我写的

combine = [train, test]

for dataset in combine:
    dataset = dataset.drop('Id', axis=1)


但是,这不起作用。如果我明确地执行此操作,例如train = train.drop('Id', axis=1),则可以正常工作。

在这种情况下,我很欣赏这两种方法中的任何一种,但是有什么方法可以使用数据框列表从这两者中删除该列吗?

最佳答案

您的解决方案不起作用的原因是,dataset是指向列表combine中项目的名称。您有正确的想法用dataset = dataset.drop('Id', axis=1)重新分配它,但是您所做的只是覆盖了名称dataset,而没有真正在列表combine中放置新的数据框。



选项1

建立新清单

combine = [d.drop('Id', axis=1) for d in combine]




选项2
或使用inplace=True更改每个数据框的位置

for d in combine:
    d.drop('Id', axis=1, inplace=True)

关于python - 如何从存储在列表中的多个数据框中删除列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46451146/

10-12 23:28