python-3.x - 在尝试执行复杂查询(Pandas)时收到错误“无法使用 dtyped [object] 数组和 [bool] 类型的标量执行 'ror_'”
问题描述
我有一个熊猫数据框,例如:
CLIENT | CAMPAING START DATE
CLIENT1| Jul/21
CLIENT2| Aug/21
我想删除某个客户和某个月份的一些行。我写:
df.loc[~((df['CLIENT'].str.contains('CLIENT1') & (df['CAMPAIGN START DATE']=="Jul/21" | df['CAMPAIGN START DATE']=="Aug/21" | df['CAMPAIGN START DATE']=="Sep/21" | df['CAMPAIGN START DATE']=="Oct/21" | df['CAMPAIGN START DATE']=="Nov/21" | df['CAMPAIGN START DATE']=="Dec/21") ))]
我收到此错误消息:
TypeError: Cannot perform 'ror_' with a dtyped [object] array and scalar of type [bool]
为什么?
解决方案
在您的解决方案中缺少()
,但可以通过以下方式简化测试成员的解决方案Series.isin
:
df.loc[~((df['CLIENT'].str.contains('CLIENT1') & ((df['CAMPAIGN START DATE']=="Jul/21") | (df['CAMPAIGN START DATE']=="Aug/21") | (df['CAMPAIGN START DATE']=="Sep/21") | (df['CAMPAIGN START DATE']=="Oct/21" )| (df['CAMPAIGN START DATE']=="Nov/21") | (df['CAMPAIGN START DATE']=="Dec/21")) ))]
df.loc[~(df['CLIENT'].str.contains('CLIENT1') &
df['CAMPAIGN START DATE'].isin(["Jul/21","Aug/21","Sep/21","Oct/21","Nov/21","Dec/21"])) ]
推荐阅读
- reactjs - 即使规则设置为 true,也可以用 firebase 反应 CORS 问题
- odata - Azure 搜索索引的 OData API 不返回元数据
- linux - 压缩文本文件中指定的所有文件,然后删除它们
- meld - 如何更改融合主题?
- excel - 使用 VBA 对 Range 进行排序时,为什么我的 .XLSM 文件会损坏?
- python - 如何将登录用户自动分配给 Django Rest 框架中的帖子?
- oracle - 如何在 Oracle 中匹配多个单词并替换它?
- variables - 在 Flutter 中从应用程序内部访问变量
- r - SummaryTools dfSummary() 不提供输出,仅提供 HTML
- android - 数据绑定如何在 Android IDE 中工作?