繁体   English   中英

按名称列出的Pandas数据切片

[英]Pandas data slicing by column names

我正在学习熊猫并试图理解切片。 当我尝试使用列名切片时,一切都有意义。 我的数据框如下所示:

              area       pop
California  423967  38332521
Florida     170312  19552860
Illinois    149995  12882135
New York    141297  19651127
Texas       695662  26448193

当我执行data['area':'pop'] ,由于我使用的是显式索引,因此我希望显示两列,并且切片的开头和结尾都应该是包含的,但结果是空数据帧。

我还获得了data['area':]的空数据帧。 为什么这与其他地方的显式索引切片不同?

根据文件

使用DataFrame,在[]内部切片会对行进行切片 这主要是为了方便而提供的,因为它是如此常见的操作。

你得到一个空的DataFrame,因为你的索引包含字符串,它找不到值'area'和'pop'。 这里是你得到的数字索引

>> data.reset_index()['area':'pop']
TypeError: cannot do slice indexing on <class 'pandas.core.indexes.range.RangeIndex'> with these indexers [area] of <class 'str'>

你想要的是

>> data.loc[:, 'area':'pop']

如果你想获得2列使用:

import pandas as pd

#data = pd.read_csv('data.csv', header = True)

all = data[['area','pop']]

因此,您可以将列列表传递给[]以按该顺序选择列。

类似地,只使用区域列:

area = df[['area']]

现在,如果要获取列的值,请使用:

all = data[['area','pop']].values
area = df[['area']].values

allarea将是numpy数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM