python - 如何使 Pandas 列名提取的迭代循环更有效?
问题描述
如何让这段代码更有效率?我正在尝试在更大的 100 列数据框中实现以下给出的逻辑。这个想法是采用所需的关键字并执行进一步的过滤,如过滤后的df = df[result]
search_list= ['A','B']
df_column_names=['Apple','Airplanne','Banana','Ball','Bat','Cat','Champ','Dog','OX','Zebra']
result=[]
for search_string in search_list:
for column_name in df_column_names:
if search_string in column_name:
result.append(column_name)
结果 =['Apple', 'Airplanne', 'Banana', 'Ball', 'Bat']
获取结果并执行过滤,如 filters_df = df[result]
解决方案
您可以将正则表达式直接传递给pandas.DataFrame.filter
. 在这种情况下,它是一个非常基本的 RegEx。
df.filter(regex='|'.join(search_list))
Empty DataFrame
Columns: [Apple, Airplanne, Banana, Ball, Bat]
Index: []
推荐阅读
- docker - Kubernetes Elasticsearch centos - 无法在 pod 中启动 nginx
- c++ - 中间位切换方法
- python - 编写一个 Windows 程序来替换几个工程 excel 电子表格
- python - 改变问题python,如何创建边界?
- javascript - Recursive array enumeration in JS
- regex - 如何使用 grep 和 sed 从文本文件中获取变量?
- react-native - React Native 中不显示警报按钮
- python - 另一个安装 pyjags 失败
- function - Kotlin 中嵌套 while 循环的问题
- python - 带有熊猫数据框的自定义 xticks 的对数 x 轴