在Pandas中loc函数的官方文档中,使用双括号loc 返回一个 Dataframe 。
单个元组。注意,使用返回DataFrame。www.example.comhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html#
但是当我试图转换单个列时,这似乎不起作用。
例如,对于 Dataframe df
df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
index=['cobra', 'viper', 'sidewinder'],
columns=['max_speed', 'shield'])
我得到的代码结果如下
在最后一种情况下,在单列上使用双括号似乎会产生语法错误。我不明白这一点,因为使用单括号适用于单列,而使用双括号适用于单行。有人能给我解释一下为什么会发生这种情况吗?
先谢了
2条答案
按热度按时间3yhwsihp1#
使用
:
选择所有行,使用[]
从一列到另一列DataFrame
:什么是替代方案:
ss2ws0br2#
看起来您错误地解析了
.loc[['x']]
的含义。双括号不是特殊的“ Dataframe 操作符”([[ 'x' ]]
)。而是将一个或多个行名称的列表传递到单个方括号中([ ['x'] ]
)。如果只传递一个参数,它将被解释为行标签,列标签被隐式设置为:
(=全部),如果要将列标签设置为其他内容,需要在.loc[]
中添加另一个参数,而不是在.loc[[]]
中添加**,即.loc[<row_labels>, <col_labels>]
。其中参数可以是列表或字符串。根据经验,* 您传递给
loc
的列表数(包括快捷键:
)将为您提供输出的维数 *:传递两个列表,你得到一个 Dataframe (2D)。(注意,如果你只传递一个列表,没有别的,它隐含地是[your_list, :]
==两个列表)。传递一个列表,一个字符串,你得到一个a系列(1D)。传递两个字符串,你得到一个0D对象,或者一个标量,也就是单元格中的值。