我有以下数据框: df1:
nameID value1 Value2 Value3
name1 10 20 30
name2 15 25 35
name3 7 8 9
name4 5 6 7
我想创建一个新列 result
,这样如果 nameID
位于 ['name1,'name3]
中,则 result = 值1 * 值2
。否则,结果 = value1* value3
。我想使用 lambda 函数。
nameID value1 Value2 Value3 result
name1 10 20 30 200
name2 15 25 35 525
name3 7 8 9 56
name4 5 6 7 35
最佳答案
通过使用np.where
np.where(df['nameID'].isin(['name1','name3']),df1.value1*df1.Value2 ,df1.value1*df1.Value3)
Out[182]: array([200, 525, 56, 35], dtype=int64)
#df1['result'] = np.where(df['nameID'].isin(['name1','name3']),df1.value1*df1.Value2 ,df1.value1*df1.Value3)
关于python - 如何将 lambda 函数应用于 pandas 数据框中的某些行并创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51603892/