【发布时间】:2018-07-02 17:02:41
【问题描述】:
我注意到在 Pandas DataFrame 中选择列的三种方法:
第一种使用 loc 选择列的方法:
df_new = df.loc[:, 'col1']
第二种方法 - 似乎更简单更快:
df_new = df['col1']
第三种方法——最方便:
df_new = df.col1
这三种方法有区别吗?我不这么认为,在这种情况下我宁愿使用第三种方法。
我很好奇为什么似乎有三种方法可以做同样的事情。
【问题讨论】:
-
或者
df.col1呢?对于选择列的非常简单的情况,所有这三个基本上是等效的。.loc将让您做的不仅仅是选择一列。 stackoverflow.com/questions/31593201/… 的可能重复项 -
他们对简单的切片做同样的事情。 loc 更加明确,尤其是当您的列是数字时。
-
谢谢@juanpa.arrivillaga。好点re:df.col1,这是另一种列选择方法。实际上,我之前已经多次看过另一个问题。它非常适合解释 loc 和 iloc。但是,这个问题是关于另一种方法:“df['col1']”。我只是对为什么有两种(或三种)等效的方法来做看似相同的事情感到困惑。
-
第三种方法的最大缺点是,当您的列名与现有的 pandas 属性或方法相同时,它会产生歧义。例如。您将列命名为“总和”。那么如果你输入
df.sum,会发生什么? (剧透警告,没什么用处,虽然df.sum()幸运的是仍然有效)所以第三种方式应该被视为很好的捷径,但需要小心 -
这里有一个不错的解释stackoverflow.com/questions/38886080/…