python - 熊猫中的条件问题
问题描述
我有这个df
:
CODE DATE MONTH_DAY PPTOT SECTOR_1
0 472606FA 2001-01-01 01-01 0.0 SN
1 472606FA 2001-01-02 01-02 0.0 SN
2 472606FA 2001-01-03 01-03 0.7 SN
3 472606FA 2001-01-04 01-04 NaN SN
4 472606FA 2001-01-05 01-05 NaN SN
... ... ... ... ...
248220 47E2A75C 2021-04-26 04-26 0.0 SI
248221 47E2A75C 2021-04-27 04-27 0.0 SI
248222 47E2A75C 2021-04-28 04-28 0.0 SI
248223 47E2A75C 2021-04-29 04-29 0.0 SI
248224 47E2A75C 2021-04-30 04-30 NaN SI
[248225 rows x 5 columns]
我想申请 2 个条件。何时df['PPTOT'] <= 0
,
必须df['SECTOR_1']=='CS'
是。所以我做了这个代码:df['PPTOT']
np.nan
df.loc[(df['PPTOT'] <= 0 & df['SECTOR_1']=='CS'), 'PPTOT'] = np.nan
但我得到这个错误:
TypeError: unsupported operand type(s) for &: 'bool' and 'str'
所以我只写了这样的括号df['PPTOT'] <= 0
:
df.loc[(df['PPTOT'] <= 0) & df['SECTOR_1']=='CS', 'PPTOT'] = np.nan
但我又得到另一个错误:
ValueError: unknown type str64
我该如何解决这个问题?或者也许有另一种有效或准确的方法来做到这一点?
提前致谢。
解决方案
运算符的&
优先级高于<=
,==
等,因此您还必须在第二个条件周围添加括号。
df.loc[(df['PPTOT'] <= 0) & (df['SECTOR_1']=='CS'), 'PPTOT'] = np.nan
推荐阅读
- python - 在数据框中使用熊猫在随机位置插入特殊字符
- google-sheets - 如何获取最新值,只要最新状态不符合工作表上的条件(通过查询公式)
- swift - SwiftUI 和 USerDefaults:更新没有 ForEach 的变量
- gcc - 使用 bitbake 构建的二进制文件没有符号表
- python - 有没有办法用 sqlalchemy 连接查询?
- python - 为什么装饰器显示中的内部函数名称?
- html - 有没有办法超链接需要的图像
<p style="text-align: center"> <img class="alignnone size-full wp-image-759 aligncenter" /><img src="https://steamboateramuseum.or
- python - 按 pd 数据帧中的分位数对行进行排序,并在每个分位数中查找初始数据帧的索引
- javascript - 如果用户输入链接,如何防止提交?
- python - Python - 有效地计算字符串列表中非 ngram 序列的频率