python - 检查是否填充了多行,如果没有填充所有值

标签 python pandas dataframe numpy

我有以下数据框:

ID  Name    Date    Code    Manager
1   Paulo   %   10  Jonh's Peter
2   Pedro   2001-01-20  20  
3   James       30  
4   Sofia   2001-01-20  40  -

我需要一种方法来检查多个列(在本例中为“日期”、“代码”和“经理”)是否填充了任何值。如果这 3 列中的任何一列中有空白,则将所有 3 列中的所有值都空白,返回以下数据:

ID  Name    Date    Code    Manager
1   Paulo   %   10  Jonh's Peter
2   Pedro           
3   James           
4   Sofia   2001-01-20  40  -

对于这种情况最好的解决方案是什么?

最佳答案

您可以使用pandas.DataFrame.loc根据条件替换某些列中的值。

考虑到您的数据框名为df:

enter image description here

您可以使用此代码来获得预期的输出:

df.loc[df[["Date", "Code", "Manager"]].isna().any(axis=1), ["Date", "Code", "Manager"]] = ''

>>>打印(df)

enter image description here

关于python - 检查是否填充了多行,如果没有填充所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73510828/

相关文章:

pandas - 从二维结构化 NumPy 数组构造 Pandas 面板

python - 从 pandas apply() 返回多列

python - 在字典中搜索人的年龄

python - Django,我在manage.py 检查或sync.db 时收到 "ERROR: Module: models could not be imported"

python - 查找排列列表

python - Pandas 根据某些条件在列中填充 NaN

r - Dplyr:按条件过滤成对分组数据集,每对只保留一行

python - 功能字段,将日期字段显示为文本 - OpenERP v7

python - Beatbox:拉取SFDC数据时可以添加查询条件吗?

pandas - 逐行绘制 Pandas 数据框