pandas - 从数据框中选择列不采用列表中的值之一的行
问题描述
我有一个值列表,它是特定列可以采用的所有值的子集:
list1=['DHL','FDX','UPS','USPS','Others']
根据用于装运的运输公司的价值,我可以选择行(例如):
df2=df1[df1['ShippingCompany']=='DHL']
现在,我需要选择“Others”,其中行对应于“Others”之前列出的航运公司以外的所有航运公司。我如何做到这一点而不必写一个长链?请注意,list1 内容可以在调用之间更改,客户可以在“其他”之前添加其他值。
我正在考虑以下元代码:
df2=df1[df1['ShippingCompany'] is not in list1[:-1]]
这在 Python 中可能吗?
解决方案
你有isin
或==
df2=df1[df1['ShippingCompany'] == list1[-1]]
超过两个值
df2=df1[~df1['ShippingCompany'].isin(list1[:-1])]
推荐阅读
- php - 正则表达式指南仅在特殊条件下从字符串中删除数字
- windows - 检查特定进程在 delphi 中是否提升
- bash - 如何在 find 命令中使用文件名中的变量?
- c# - async 方法不异步运行
- html - 在 Wordpress 上嵌入 Airtable
- python - 如何使用 nlp 从问题列表中生成答案?
- javascript - 我的 javascript for 循环不运行。有什么问题
- amazon-cloudformation - 在 cnf 模板中运行 bash 命令
- ruby - 如何在 Slanger 上设置 Redis 身份验证
- cadence-workflow - 如何为 Cadence 活动(本地和常规活动,有或没有重试)设置适当的超时值?