[英]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.