我想建立基於從另一表中的值(和COUNTIFS)二維表()的基礎上COUNTIF二維表。我管理這個成功使用Excel爲原型,但我堅持兩個概念:使用大熊貓建立「一個單獨的第Excel表單
1. Emulating Excel COUNTIF() on pandas
2. Dynamically build a new dataframe
注:COUNTIF()需要一個範圍和標準作爲參數。例如,如果我有一個顏色列表,我想知道的時候「橙」的數量是在下面的列表:
A
Red
Orange
Blue
Orange
Black
,那麼我會簡單地使用下面的公式:
COUNTIF(A1:A5, "Orange")
這應返回2.
當然COUNTIF()的功能可以如形式示例變得更加複雜,在這種形式COUNTIF級聯標準(範圍1,條件1,範圍2 2,條件2 ...)可以被解釋爲一個與criterian。例如,如果我在一個列表wantto女性的數量超過35個類似下面:
A B
Female 19
Female 40
Male 45
,那麼我會簡單地使用下面的公式:
COUNTIF(A1:A3, "Female", B1:B3, ">35"
這應返回1.
回到我的用例。這是源表:
Product No Opening Date Closing Date Opening Month Closing Month
0 1 2016-01-01 2016-06-30 2016-01-31 2016-06-30
1 2 2016-01-01 2016-04-30 2016-01-31 2016-04-30
2 3 2016-02-01 2016-06-30 2016-02-29 2016-06-30
3 4 2016-02-01 2016-05-31 2016-02-29 2016-05-31
4 5 2016-02-01 2099-12-31 2016-02-29 2099-12-31
5 6 2016-01-01 2099-12-31 2016-01-31 2016-10-31
6 7 2016-06-01 2016-07-31 2016-06-30 2016-07-31
7 8 2016-06-01 2016-11-30 2016-06-30 2016-11-30
8 9 2016-06-01 2016-07-31 2016-06-30 2016-07-31
9 10 2016-06-01 2099-12-31 2016-06-30 2099-12-31
這是我想要達到的二維矩陣:
2016-01-31 2016-02-29 2016-03-31 2016-04-30 2016-05-31 \
2016-01-31 3 3 3 2 2
2016-02-29 3 3 3 3 2
2016-03-31 0 0 0 0 0
2016-04-30 0 0 0 0 0
2016-05-31 0 0 0 0 0
2016-06-30 4 4 4 4 4
2016-07-31 0 0 0 0 0
2016-08-31 0 0 0 0 0
2016-09-30 0 0 0 0 0
2016-10-31 0 0 0 0 0
2016-11-30 0 0 0 0 0
2016-12-31 0 0 0 0 0
2016-06-30 2016-07-31 2016-08-31 2016-09-30 2016-10-31 \
2016-01-31 1 1 1 1 0
2016-02-29 1 1 1 1 1
2016-03-31 0 0 0 0 0
2016-04-30 0 0 0 0 0
2016-05-31 0 0 0 0 0
2016-06-30 4 2 2 2 2
2016-07-31 0 0 0 0 0
2016-08-31 0 0 0 0 0
2016-09-30 0 0 0 0 0
2016-10-31 0 0 0 0 0
2016-11-30 0 0 0 0 0
2016-12-31 0 0 0 0 0
2016-11-30 2016-12-31
2016-01-31 0 0
2016-02-29 1 1
2016-03-31 0 0
2016-04-30 0 0
2016-05-31 0 0
2016-06-30 1 1
2016-07-31 0 0
2016-08-31 0 0
2016-09-30 0 0
2016-10-31 0 0
2016-11-30 0 0
2016-12-31 0 0
基本上,我想通過時間來建立產品生存的矩陣。縱軸表示新產品的起源,而橫軸表示這些帳戶在多長時間內持續存在。
例如,如果10個產品是在1月推出,這個數字對於一月VS月份應該是10.如果這10種產品的1〜2月被關閉,這個數字對於一月二月VS應該9.如果所有剩餘產品在六月被關閉,那麼行一月VS六月,七月,八月,等應該是在二月,三月,四月0
產品開發等。不會影響到一月一行。
我管理使用以下Excel公式來構建2D矩陣:
=COUNTIF(Accounts!$D$2:$D$11,Main!$A2)-COUNTIFS(Accounts!$D$2:$D$11,Main!$A2, Accounts!$E$2:$E$11,"<="&Main!B$1)
(這將填充所述第一小區)
我最初的策略是建立一個多維列表,並使用數for循環來填充他們,但我不知道是否有一個更簡單(或更多建議的方式)在熊貓。
非常理解,我設法學習一些技巧的。謝謝! –