抱歉,我是新手。
我现在正在和熊猫玩耍。我想在存储在列表中的两个数据框中放置一个特定的列。这就是我写的
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/