[英]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
all
和area
将是numpy数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.