python - 如果给定行/列中存在键,则迭代键列表并添加到 Pandas DF
问题描述
我有一个相当大的(57k 行)数据文件,我经常访问其中包含人员列表及其技能组合。我想提供一个关键字列表并输出一个 DF,其中只有这些键存在的行,如下所示:
key_list = ('LEAN', 'SIGMA', 'Toyota')
for key in key_list:
df1 = df[df[col_key].str.contains(key, case=False)]
# col_key previously defined.
在上述情况下,我只会得到丰田的结果。要捕获我需要指定的所有键:
df1 = df[df[col_key].str.contains('sigma', case=False) |
df[col_key].str.contains('LEAN', case=False) |
df[col_key].str.contains('SIGMA', case=False) |
df[col_key].str.contains('Toyota', case=False)]
使其对所提供的任何长度的键都进行模块化将能够更快地处理数据请求。我觉得好像我错过了一些愚蠢的东西。如果有更有效/Pythonic 的方法,我会全力以赴。谢谢!
解决方案
您可以检查每个值是否包含键列表中的任何单词,这里是一个示例:
df[df[col_key].apply(lambda x: any([word.lower() in x.lower() for word in key_list]))]
推荐阅读
- java - 在选定元素的字符串上方带有提示的微调器
- c# - 带有实体框架的 SQLite:VS2013 中没有可用的 SQLite 数据提供程序
- python - 如何将对象转换为数组以将可变大小图像的输入提供给 keras 中的 cnn 模型
- vue.js - Vuepress theme in vue template
- javascript - Dropdown menu button doesn't close after click using angular5 and bootstrap4
- material-ui - Material UI : Form styling
- sql - 一般的 SQL 或特定的 SQL 风格是否有通用的代码约定?
- model - Yii2模型获取包含下划线的字段的方法
- javascript - Handle unreachable server when using Fetch API with react native
- google-closure-compiler - Closure Compiler no longer able to determine type