pandas如何使用Series对象切片数据框?

时间:2017-01-19 04:21:19

标签: python pandas dataframe slice

我有一个6x4的pandas数据框,其中填充了标准正态分布中的随机数(索引是数字0到5,列'A','B','C'和'D'。

import pandas as pd

df = pd.DataFrame(np.random.randn(6,4), index=[0,1,2,3,4,5], columns=list('ABCD))

看起来像这样: Data Frame

我添加了一些包含一些字符串的列:

df['E'] = ['one', 'one', 'two', 'three', 'four', 'three']

现在数据框看起来像这样: enter image description here

引用列E,我只能获得关键字“一”或“四”的行:

x = df['E'].isin(['one','four'])
df[x]

我明白了: enter image description here

但是当我检查x的类型时,它是一个pandas系列(pandas.core.series.Series)。

我不明白如何解释系列切片数据帧?我想在某种程度上理解一个基本的层面。它如何知道返回哪些行?如果我打印x,它是一个充满布尔值的系列。

1 个答案:

答案 0 :(得分:1)

它是布尔索引。简单的理解方法是,布尔值与数据框对齐。只要布尔系列为真,就会拾取该行。否则(false),该行被删除。例如,x在索引0,1,4处为真,因此拾取具有这些索引的数据帧行,即您的情况中的第一行,第二行和第五行。