如何从python中的pandas库中提取Crosstab中的各个列?

时间:2014-05-28 20:16:17

标签: python pandas crosstab

我有以下代码:

def readcsv():

    csv_data = read_csv(file,usecols=[0,1,24,25,26],parse_dates=[0],dtype=object)
    csv_data1 = csv_data.values

    return csv_data1

def main():
    d = readcsv()
    df = DataFrame(d)
    d1=df[1]
    d0=df[0]
    d2=df[2]
    d3=df[3]
    d4=df[4]


    ct = pd.crosstab(d0,[d2,d1,d3],rownames=['Date'],colnames=['RigStat','Prov','Obj'], margins=False)

在此步骤中,结果为表格:

RigStat     DRILL                                              ...   MIR       \
Prov           AB                                           BC ...    MB   SK   
Obj           BIT  BRN  CBM  GAS  NON  OIL  SVC  WST  WTR  NON ...   OIL  GAS     
Date                                                           ...              
2006-08-22     15    1   20  235    0   63    4    0    0    0 ...     1    4   
2006-08-29     17    1   24  242    0   61    5    0    1    0 ...     0    5     
2006-09-06     14    0   22  210    0   50    4    0    0    0 ...     1    4     
2006-09-12     13    0   21  230    0   60    4    0    0    0 ...     0    3     
2006-09-19     14    0    7  155    0   35    2    1    1    1 ...     2    2    

现在,我希望能够创建一个新表,只包括" Drill"下的那些列,我该怎么做?我甚至无法在此处提取单个列,因为Dataframe已按日期编制索引。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

newdf = ct['DRILL']应该这样做。

或者,您可以采用横截面:newdf = ct.xs('DRILL', level='RigStat', axis=1)