在Pandas DataFrame中,比如说汽车,我可以像这样选择并打印一个列:
# country is a column
print(cars['country'])
然而,当我尝试用一行做同样的事情时,我失败了:
#US is a row
print(cars['US'])
KeyError: 'US'
然后我尝试了这个并且它有效:
print(cars['US':'US'])
那么,在Pandas DataFrame中,列索引是键而行索引不是吗?有人可以解释使行选择比列选择更复杂的原因吗?
答案 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']作为专栏,我最好的猜测是通常将日期列为行,因此选择一列时更常见数据要做一些操作而不是选择一行。然而,切片行和列一样容易,所以除了几次击键之外没有太大的区别。