我有一个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))
我添加了一些包含一些字符串的列:
df['E'] = ['one', 'one', 'two', 'three', 'four', 'three']
引用列E,我只能获得关键字“一”或“四”的行:
x = df['E'].isin(['one','four'])
df[x]
但是当我检查x的类型时,它是一个pandas系列(pandas.core.series.Series)。
我不明白如何解释系列切片数据帧?我想在某种程度上理解一个基本的层面。它如何知道返回哪些行?如果我打印x,它是一个充满布尔值的系列。
答案 0 :(得分:1)
它是布尔索引。简单的理解方法是,布尔值与数据框对齐。只要布尔系列为真,就会拾取该行。否则(false),该行被删除。例如,x在索引0,1,4处为真,因此拾取具有这些索引的数据帧行,即您的情况中的第一行,第二行和第五行。