最近我問這是回答的問題 - How do I add conditionally to a selection of cells in a pandas dataframe column when the the column is a series of lists?,但我相信有我以前沒有考慮的新問題。矢量化解決方案,有條件的數據框選擇
在下面的數據幀我需要兩個條件,導致變化d
列。在d
列中的每個值是一個list
。
- 其中
a == b
,d中的最後一個整數加1。 其中
a != b
,整數列表被擴展並且值1
被插入list
列的末尾d
列中。a b c d On On [0] [0,3] On Off [0] [0,1] On On [0] [2] On On [0] [0,4,4] On Off [0] [0]
其結果,數據幀將是這樣的:
a b c d On On [0] [0,4] On Off [0] [0,1,1] On On [0] [3] On On [0] [0,4,5] On Off [0] [0,1]
我知道這可以使用pd.Series.apply
方法來完成結合的預定義的功能或使用的lambda
然而數據幀由100000行組成,我希望可以存在針對這兩種情況的向量化解決方案。
存儲非標值作爲數據元素是不明智的,通常你失去了矢量化方法爲NP和熊貓Access已追加到沒有向量化方法一個矢量化的列表 – EdChum
我有一種感覺,可能是這種情況。作爲熊貓的新用戶,捕獲這些數據的更爲典型的方式是什麼?數據幀大約有50萬次更新,每次都會在col'a'和col''中得到不同的結果。如果「a == b」,則計數增加,如果「a!= b」需要開始新的計數。 – orgelzyklus