簡體   English   中英

基於其他列集和基於 IF THEN 條件創建一組新列

[英]Creating a set of new columns based on other sets of columns and based on the IF THEN condition

我需要基於另外兩組列和附加的 IF THEN 條件創建第三組列。 它有效,但我不確定如何引入一個條件,將除法限制為僅那些 list_A 和 list_B 都高於零的行。 換句話說,我只想在集合 A 和 B 中的數字都大於零時才執行計算,因為這是使除法有意義的條件。 而且,如果列表 A 或 B 為零,那么我希望列表 C 為零。 我嘗試了 NumPy where 方法,但出現錯誤。 謝謝你。 這是例子

dates = pd.date_range('1/1/2000', periods=100, freq='M')
dft = pd.DataFrame(np.random.randn(100, 4),index=dates, columns=['var_A1', 
'var_A2', 'var_B1', 'var_B2'])
list_A=['var_A1', 'var_A2']
list_B=['var_B1', 'var_B2']
list_C=['var_C1', 'var_C2']
C=pd.DataFrame(data=dft[list_A].values/dft[list_B].values,columns=list_C,
index=dft.index) 
dft=pd.concat([dft,C],axis=1)   

c = pd.DataFrame(data=np.where(((dft[list_A].values>0) & (dft[list_B].values>0)), dft[list_A].values/dft[list_B].values, 0),columns=list_C,index=dft.index) dft=pd.concat([dft,c],axis=1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM