为什么有些pandas方法需要一个list而不需要tuple?

vcudknz3  于 2023-06-20  发布在  其他
关注(0)|答案(1)|浏览(113)

我惊讶地发现,在Pandas中,如果你想按名称删除列,
my_dataframe.drop(['column_name_one','column_name_two','column_name_three'])
工作,但是
my_dataframe.drop(('column_name_one','column_name_two','column_name_three'))
这一设计决定是否有技术上的原因,或哲学上的理由?

mzillmmw

mzillmmw1#

方法文件规定:
元组将被用作单个标签,而不被视为类似列表的标签。
驱动这些语义的是:
1.该方法接受单个标记为有效,即你可以用df.drop('foo')代替df.drop(['foo'])
1.元组是Pandas中的有效列名。
因此,根据这些事实,如果元组可以被解释为标签序列,那么df.drop(('foo', 'bar'))将是二义性的:是删除一列('foo', 'bar'),还是删除两列'foo''bar'
因此,我们以您观察到的行为结束,其中元组和列表被不等价地处理。

相关问题