2016-11-24 53 views
1

我想获得一个包含多个子集的数据框。例如:DataFrame(data = a[1,2,3,4,5,6,7,8,9])。我想用iloc [0,3]和iloc [6:9]构建一个数据框,其结果为:DataFrame(data = a[1,2,3,6,7,8])熊猫DataFrame:如何引用自身的多个子集?

目前我做这样是继续做数据复制速度很慢:

if my_df is not None:     
    domain += 1 
    new_domain = df.iloc[begin_iloc: begin_of_next_iloc] 
    new_domain['domain'] = domain 
    my_df = my_df.append(new_domain) 
else: 
    my_df = df.iloc[begin_iloc: begin_of_next_iloc] 

回答

2

可以使用numpy.r_为concanecate指数:

print (np.r_[0:3, 6:9]) 
[0 1 2 6 7 8] 

print (df.iloc[np.r_[0:3, 6:9]]) 
    a 
0 1 
1 2 
2 3 
6 7 
7 8 
8 9 
+0

数片已被硬编码?因为切片被计算。 –

+0

我想不是,你可以使用'print(np.r_ [begin_iloc:begin_of_next_iloc,begin_iloc1:begin_of_next_iloc1])'。但我不知道我是否理解你的问题。 – jezrael