簡體   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