我一直在使用熊貓庫和交叉表來創建一個頻率數據框來處理數據。在下面的代碼中,我在csv中讀取,創建一個數據框,然後創建一個交叉表,這是一個頻率數據幀。然後,我得到一個橫截面的數據來提取列和下面的數據。如何在pandas crosstab數據框的列中顯示空白值?
def dataforgraphs():
d = readcsv()
df = DataFrame(d)
d1=df[1]
d0=df[0]
d2=df[2]
d3=df[3]
d4=df[4]
cta = pd.crosstab(d0,[d2,d1,d3],rownames=['Date'],colnames=['RigStat','Prov','Obj'], margins=False)
ndfABA= ndf.xs('AB', level='Prov', axis=1)
ABrigs = ndfAB.xs(['BIT','GAS','OIL'],axis=1)
現在,從這裏我沒有能夠拉動假設柱截面,其中將包括所有沒有標籤「位」,「氣」或「油空白值的問題」。在Excel數據透視表中,我可以通過在選擇要包含在數據透視表中的列時檢查(空白)框來執行此操作。我想在這裏做同樣的事情來得到所有那些空白的頻率計數。
有什麼建議嗎?
目前我得到以下輸出,其中只有三列指定和下面的頻率。
OIL GAS BIT
Date
01-01-2007 1 6 3
01-02-2007 2 4 4
01-03-2007 1 6 3
01-04-2007 5 6 4
01-05-2007 1 7 3
01-06-2007 6 6 6
01-07-2007 1 8 3
01-08-2007 5 6 6
01-09-2007 1 6 3
01-10-2007 1 7 3
相反,我想獲得以下,其中包括未列爲石油,天然氣或BIT(或任何與此有關的上市)的所有空值的列。
OIL GAS BIT "blank'
Date
01-01-2007 1 6 3 10
01-02-2007 2 4 4 11
01-03-2007 1 6 3 12
01-04-2007 5 6 4 10
01-05-2007 1 7 3 1
01-06-2007 6 6 6 4
01-07-2007 1 8 3 5
01-08-2007 5 6 6 2
01-09-2007 1 6 3 5
01-10-2007 1 7 3 2
數據進入大熊貓交叉表數據幀的結構如下所示:
Date Obj Operator Type Address
01-01-2007 OIL ABC HZ 112 W Ave
01-01-2007 GAS ABC HZ 112 W Ave
01-01-2007 GAS ABV HZ 113 W Ave
01-01-2007 BIT NCH HZ 114 W Ave
01-01-2007 CNR HZ 115 W Ave
01-02-2007 OIL CNRL HZ 112 W Ave
01-02-2007 OIL CNRL HZ 112 W Ave
01-02-2007 OIL CNRL HZ 112 W Ave
01-03-2007 CNRL HZ 112 W Ave
01-03-2007 CNRL HZ 112 W Ave
從這裏,大熊貓交叉表將創建一個頻率表,將通過捕捉油,氣,BIT的frquency日期,但我無法找到如何獲得空白值count.Notice如何有一些沒有列出Obj的列。這些值不是交叉表中我想查詢的值。
有什麼建議嗎?
您能否提供一個具有真實數據的可重現示例並顯示預期的輸出? – joris
那裏我做了一些編輯來清除。 – carevans88
您提供一些重現問題的示例* data *會更容易(只是在同一結構中的一些隨機數據可以)。因爲它仍然不是很清楚。 – joris