如何从pandas库的Crosstab中提取单独列?

0 投票
1 回答
3143 浏览
提问于 2025-04-18 07:52

我有以下代码:

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

你可以用 newdf = ct['DRILL'] 这行代码来获取数据。

另外,你也可以用交叉选择的方式: newdf = ct.xs('DRILL', level='RigStat', axis=1)

撰写回答