如果数据框包含列中的值,如何在另一列中执行计算? - Pandas/Python

If a dataframe contains a value in a column, how to perform a calculation in another column? - Pandas/ Python

原始数据框:

A B C
123 1500 0

输出:

A B C
123 1500 1.2

需要逻辑:如果A列包含123,那么对于C列,取B的值并乘以0.0008,C列中的所有其他值都不应更改。

您可以检查“A”列的值是否为 123 并使用“C”上的 mask 替换那里的值:

df['C'] = df['C'].mask(df['A']==123, df['B']*0.0008)

输出:

     A     B    C
0  123  1500  1.2

我认为您只是想检查 dataframe['A'] 是否包含 123,如果是,则应将 B 列值乘以 0.0008 并将其附加到 C 列中。如果是这种情况,您应该这样做随它去吧:

#Considering your dataframe is a pandas dataframe stored in variable 'df'
vals_a = df.index[df['A'] == 123].tolist () #Returns the list of the indexes containing 123.
for b in vals_a:
   val_b = df['B'].values[b]
   df.loc[val_b,'C'] = df.loc[b, 'B']*0.0008

如果 A 列包含 123,这基本上将 'C' 列中的相同索引值替换为 0.0008 与 B 列中的值的乘积。