我有以下代码:
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
已按日期编制索引。
有什么建议吗?
答案 0 :(得分:0)
newdf = ct['DRILL']
应该这样做。
或者,您可以采用横截面:newdf = ct.xs('DRILL', level='RigStat', axis=1)