首页 > 解决方案 > 如何在 python 中编辑我的函数以使我的输出数据框显示 N/A?

问题描述

在此处输入图像描述

我在 python 中定义了一个函数来根据我已经检索到的 business_id 提取营业时间:

def hours_operation(business_id):
    day = day_open(business_id)
    start = day_start(business_id)
    end = day_end(business_id)
    day1 = []
    for i in day:
        try:
            value = "start"+str(i)
        except:
            value = 'None'
        day1.append(value)
    dict1 = {}
    for i in range(len(day1)):
            dict1[day1[i]]=start[i]
    start_df = pd.DataFrame(dict1, index=[0])    
    day2 = []
    for i in day:
        day2.append("end"+str(i))
    dict2 = {}
    for i in range(len(day2)):
            dict2[day2[i]]=end[i]
    end_df = pd.DataFrame(dict2, index=[0])
    for i in day:
        start_df['end'+str(i)]=end_df['end'+str(i)]
    return start_df

问题是我的输出如下所示:

Out[36]: 
  start0 start1 start2 start3 start4  ...   end2  end3  end4  end5  end6
0   1100   1100   1100   1100   1100  ...   2200  2200  2200  2200  2100

但是,我喜欢这种格式,如果企业每周只工作 4 天而不是 7 天。我希望它返回 start 和 end 为 N/A。

如果一家企业每周只工作 4 天,这就是我想要的输出:

start0 start1 start2 start3 start4 start5 start6 end1   end2  end3  end4  end5  end6
     0   1100   1100   1100   1100   1100    N/A  N/A   2200  2200  2200  N/a   N/A

标签: pythonpandasapi

解决方案


您可以使用 python 三级条件语句,如下所示:

dict1[day1[i]]= start[i] if start[i] is not None else 'N/a'

这是假设这start[i]是开始时间的值,并且您不想输出的值是 NoneType 对象。例如,如果它是 0 或某个字符串,只需更新该语句中的条件以反映这一点。(当然,结束时间你必须做同样的事情)


推荐阅读