【发布时间】:2019-08-06 05:53:26
【问题描述】:
我觉得当tuple 传递给DataFrame.drop() 时,它会引发错误,但当list 传递时它可以工作。
鉴于此数据框:
df = pd.DataFrame(np.arange(12).reshape(3, 4),columns=['A', 'B', 'C', 'D'])
以下作品:
df.drop(['A', 'B'], axis=1)
但以下不是:
df.drop(('A', 'B'), axis=1)
错误:
KeyError: "[('A', 'B')] not found in axis"
该错误使代码尝试执行的操作更加清晰,但对我来说仍然没有意义。我忽略了什么吗?
【问题讨论】:
-
正如documentation 所述,您可以将它传递给
list like对象。为什么要改为传递元组?在我看来,这里没有太多的直觉,只是 API 是如何设计的。 -
我在问之前阅读了文档。 'list-like' - 对我来说,一个元组就像列表一样。我知道它是不可变的,但这正是您想要使用“不可变列表”的地方。
标签: python python-3.x pandas dataframe