如何在python中编辑函数,使输出数据框显示N/A?
我在下面的python中定义了一个函数,用于根据我已经检索到的业务id提取操作时间:如何在python中编辑函数,使输出数据框显示N/A?,python,pandas,api,Python,Pandas,Api,我在下面的python中定义了一个函数,用于根据我已经检索到的业务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"+st
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天。我希望它以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
您可以使用python第三个条件语句,如下所示:
dict1[day1[i]]= start[i] if start[i] is not None else 'N/a'
这是假设
start[i]
是开始时间的值,并且不希望输出的值是非类型对象。例如,如果它是0或某个字符串,则只需更新该语句中的条件以反映它。(当然,您必须在结束时间使用相同的内容)在代码到达API后,如果业务在2天内没有运行,它不会返回为“无”它只是空白。因此,这可能是一个字符串,您可以使用if start[i]!=“”
作为条件,我收到一个名称错误name错误:名称'dict1'未定义是的,您必须将看起来像dict1[day1[i]=start[i]
的行替换为我建议的编辑。但它不是重新命名为N/a。它的输出是相同的