python - 根据条件和年份标记 NaN 值

标签 python python-3.x pandas dataframe numpy

我试图满足根据条件和特定年份标记 NaN 值的要求,下面是我的代码:

import pandas as pd
import numpy as np
s={'Fruits':['Apple','Orange', 'Banana', 'Mango'],'month':['201401','201502','201603','201604'],'weight':[2,4,1,6],'Quant':[251,178,298,300]}
p=pd.DataFrame(data=s)
upper = 250

如果 upper>250。基本上我的目的是检查 Quant 值是否大于定义的 upper 值,但针对特定日期,即 201603 和 201604。

输出应该是这样的-

Fruits  month   weight  Quant
0   Apple   201401  2   251.0
1   Orange  201502  4   178.0
2   Banana  201603  1   NaN
3   Mango   201604  6   NaN

最佳答案

你可以使用.loc:

p.loc[(p.Quant > upper) & (p.month.str[-2:].isin(['03','04'])), 'Quant'] = np.nan

输出:

   Fruits   month  weight  Quant
0   Apple  201401       2  251.0
1  Orange  201502       4  178.0
2  Banana  201603       1    NaN
3   Mango  201604       6    NaN

关于python - 根据条件和年份标记 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71530740/

相关文章:

python - 为什么主要的可运行 Python 脚本没有编译为模块之类的 pyc 文件?

Python - 定义全局名称日期时间

python - 使用相同的轴在 seaborn 热图顶部绘制线图

python - 传递切碎的日期时间

python - 如何为从 pandas DataFrame 创建的条形图设置 x 轴刻度位置?

python - Scrapy,在 Javascript 中抓取数据

c# - 在 C#/Python 中重命名远程文件服务器上的文件

python-3.x - 在本地测试 Python Google Cloud Functions

python - Visual Studio Code : OSError: [Errno 30] Read-only file system while trying to install pylint on Linux Mint

python - Plotly:如何显示边际直方图计数以外的其他值?