簡體   English   中英

如何跳過pandas dataframe中的列繼續循環處理

[英]How to skip columns in pandas dataframe and continue processing in loop

我正在讀取文件夾中的 excel 個文件並加載到 dataframe。我正在從一些列中獲取值,其中一些 excel 文件缺少我正在查找的列。 在那種情況下,我想為該 excel 文件將缺失的列填充為 N/A 並繼續處理,以便我可以將所有結果保存在 dataframe 中。我正在學習 python,我在這里需要幫助。 下面是我的代碼

from pathlib import Path
import pandas as pd

p = Path(path to excel)
filtered_files = [x for x in p.glob("**/*.xlsx") if not x.name.__contains__("AC0")]

for i, file in enumerate(filtered_files):
   full_df = pd.read_excel(file, sheet_name=[1], header=1)
   df = full_df[1]
   # get column
   col_1_name = df.columns[2]
   ded_ind_df = df[df[col_1_name] == 'DED Individual']
   ded_fmem_df = df[df[col_1_name] == 'DED Family Member']
   result[i] = {
    'IND DED INN': list(ded_ind_df['In-Network\nVALUE']),
    'DED FAM INN':list(ded_fmem_df ['In-Network\nVALUE']),
    'IND DED OON': list(ded_ind_df['Out-of-Network\nVALUE']),
    'DED FAM OON':list(ded_fmem_df ['Out-of-Network\nVALUE'])
     }
result = pd.DataFrame.from_dict(result)

當我運行時,出現以下錯誤

IND DED OON': list(ded_ind_df['Out-of-Network\nVALUE']),
indexer = self.columns.get_loc(key)
    raise KeyError(key) from err
KeyError: 'Out-of-Network\nVALUE'

這是因為其中一個 excel 有 Out of Network 列不存在。 在這種情況下,我想跳過並繼續處理下一個文件。

您可以在result[i] =...行之前嘗試使用這些選項之一。 創建列但使用空值

for column in ["In-Network\nVALUE", "Out-of-Network\nVALUE"]:
    if column not in ded_ind_df.columns:
        ded_ind_df[column] = None
# result[i] = {...

但是,如果您想跳過迭代並跳轉到下一個:

if any(column not in ded_ind_df.columns for column in ["In-Network\nVALUE", "Out-of-Network\nVALUE"]):
    continue  # Skip current interation
# result[i] = {...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM