根据特定条件更改熊猫数据框列

时间:2021-04-13 08:30:11

标签: python pandas dataframe

假设我有一个重量和价格的数据框。

import pandas as pd

df1 = pd.DataFrame({'weight': [1,2,0,3,4,5,0], 'price': [10,20,30,40,50,60,70]})

问题:如果我发现权重为 0,我该如何更改价格列的值? (在这种情况下,如果 wieght = 0 并且其他所有内容保持不变,我想将价格设置为 0.96)。如果可能的话,希望能提供多种方法以及在哪种情况下使用哪种方法的解释。

尝试过:

if df1['weight'] == 0:
  df1['price'] = 0.96

但是,当尝试这样做时,会出现错误 ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 我知道我一定做错了什么,但如果有人能解释这一点并提供最好的解决方案,那就太好了。

期望输出

df1 = pd.DataFrame({'weight': [1,2,0,3,4,5,0], 'price': [10,20,0.96,40,50,60,0.96]})

相同的数据框,但价格发生了变化。

0 个答案:

没有答案