在DataFrame中选择行与列

时间:2018-05-20 16:03:36

标签: python pandas computer-science data-science

在Pandas DataFrame中,比如说汽车,我可以像这样选择并打印一个列:

# country is a column
print(cars['country'])

然而,当我尝试用一​​行做同样的事情时,我失败了:

#US is a row
print(cars['US'])
KeyError: 'US'

然后我尝试了这个并且它有效:

print(cars['US':'US'])

那么,在Pandas DataFrame中,列索引是键而行索引不是吗?有人可以解释使行选择比列选择更复杂的原因吗?

1 个答案:

答案 0 :(得分:0)

在熊猫中

cars['Country']

将列作为Series返回。要将行切成一个系列,等效命令将是(假设' US'是一个索引值):

cars.loc['US']

如果你这样做

cars['US':'US']

然后您将获得相同的数据,但它将是一个DataFrame而不是一个系列,因此不太相同。

显然,您不能以相同的方式引用列和行。如果我有一个S& P 500中所有股票之间相关性的数据框,那么您的行和索引值将具有相同的元素。因此,您需要知道df [' AAPL']是否指的是AAPL'来自索引或列。所以df [' AAPL']是' AAPL'列,而df.loc [' AAPL']是' AAPL'行。如果您愿意,也可以为该行和df.loc [:,' AAPL']执行df.loc [' AAPL',:]。

至于为什么他们选择df [' AAPL']作为专栏,我最好的猜测是通常将日期列为行,因此选择一列时更常见数据要做一些操作而不是选择一行。然而,切片行和列一样容易,所以除了几次击键之外没有太大的区别。