python - 如果一行中的一个单元格为空,则更改数据帧中的特定值

标签 python pandas if-statement null

我在 Pandas 中有以下数据框:

>>>name   food  beverage  age
0  Ruth   Burger Cola      23
1 Dina    Pasta  water     19
2 Joel    Tuna   water     28
3 Daniel  null   soda      30
4 Tomas   null   cola     10
我想说的是,如果“食物”列中的值为空,则年龄和饮料将变为“”(也为空白),
我为此编写了以下代码:
if df[(df['food'].isna())]:
  df['beverage']=' '
  df['age']=' '
但我不断收到错误:

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().


我在[[但没有帮助,我做错了什么吗?

最佳答案

尝试mask

df[['beverage','age']] = df[['beverage','age']].mask(df['food'].isna(),'')

df
Out[86]: 
     name    food beverage age
0    Ruth  Burger     Cola  23
1    Dina   Pasta    water  19
2    Joel    Tuna    water  28
3  Daniel     NaN             
4   Tomas     NaN             

关于python - 如果一行中的一个单元格为空,则更改数据帧中的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63872530/

相关文章:

python - 使用月平均值的 Pandas fillna 缺失小时时间点数据的方法

php - if else 在 $_post isset 内

Python:为什么添加参数后方法的行为会有所不同?

python - 将Cython生成的.c文件编译成exe文件

python - 如何在Python中为单个语句抛出超过1个可能的异常

python - Pandas :来自多个专栏的seaborn countplot

python - 在使用 pd.pivot_table 制作的散点图中为每个类设置不同的颜色

c++ - 如何在 if 语句中将 unsigned int 用作普通 int

python-3.x - 将每个数字/数字乘以递增值

python - 使用 pyinstaller 和 scipy 模块将 py 文件转换为 exe 文件时出错。知道可能是什么问题吗?