我想添加一列到df。這個新的df的值將取決於其他列的值。例如python熊貓數據框如果沒有迭代思想數據框
dc = {'A':[0,9,4,5],'B':[6,0,10,12],'C':[1,3,15,18]}
df = pd.DataFrame(dc)
A B C
0 0 6 1
1 9 0 3
2 4 10 15
3 5 12 18
現在我想添加另一列D,其值取決於A,B,C的值。 因此,例如,如果是通過DF我只想做迭代:
for row in df.iterrows():
if(row['A'] != 0 and row[B] !=0):
row['D'] = (float(row['A'])/float(row['B']))*row['C']
elif(row['C'] ==0 and row['A'] != 0 and row[B] ==0):
row['D'] == 250.0
else:
row['D'] == 20.0
有沒有辦法做到這一點沒有for循環或使用其中()或適用()函數。
感謝
非常感謝!也會像這樣的工作。 ('['','B']]!= 0和行['C']!= None).all(): 我必須檢查無條件以及 – cryp
你可能應該將這些'None'轉換爲'NaN's。你會得到更好的性能,因爲它將是一個float dtype而不是column,並且pandas操作是NaN知道的。 – TomAugspurger
哦,好的,謝謝!所以這樣的事情? elif(row [['A','B']]!= 0 and row ['C']!= NaN).all() – cryp