python - 有没有一种简洁的方法来处理和忽略每行代码的异常

标签 python

我需要一个函数来对 DataFrame 中许多可能的列中的每一个应用不同的转换。有没有一种我没有想到的简洁方法可以做到这一点?我的任何一个解决方案,

def process_frame(frame):
   try:
      frame.column_a = frame.column_a.apply(lambda x: bool(int(x)))
   except KeyError:
      pass
   try:
      frame.column_b = frame.column_b.apply(lambda x: min(0, x))
   except KeyError:
      pass
   # etc, etc

def process_frame(frame):
   if 'column_a' in frame.columns:
      frame.column_a = frame.column_a.apply(lambda x: bool(int(x)))
   if 'column_b' in frame.columns:
      frame.column_b = frame.column_b.apply(lambda x: min(0, x))
   # etc, etc

相当重复且冗长。有没有更优雅的方法来迭代地尝试/排除代码块中的每一行?

最佳答案

您可以创建一个字典,其中列名作为键,函数作为值。然后你可以迭代字典:

f_dict = {'column_a': lambda x: bool(int(x)), 
          'column_b': lambda x: min(0, x)}

for k, f in f_dict.items():
    if k in df.columns:
        df[k] = df[k].apply(f)

关于python - 有没有一种简洁的方法来处理和忽略每行代码的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70852122/

相关文章:

python - 使用 Python3/C API 更新数组的元素

Python单元测试: Design directory structure for mock input?

python - 将数据添加到 CSV 文件中的新列和第一行

python - 如何自动为 Jupyter (ipython) notebook 添加扩展?

python - 为 Django 中两个不同类的选项创建外键

Python 错误 123 文件名、目录名或卷标语法不正确

python - 错误的路径导致 python 程序使用 crontab 运行

Python 复杂查询

python - Conv2D 使用公式转置输出形状

python - 在 pandas 数据框中获取几年内工作日某个小时的平均值