如何从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
你可以用 newdf = ct['DRILL']
这行代码来获取数据。
另外,你也可以用交叉选择的方式: newdf = ct.xs('DRILL', level='RigStat', axis=1)
。