python - 如何在 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
解决方案
您可以使用 python 三级条件语句,如下所示:
dict1[day1[i]]= start[i] if start[i] is not None else 'N/a'
这是假设这start[i]
是开始时间的值,并且您不想输出的值是 NoneType 对象。例如,如果它是 0 或某个字符串,只需更新该语句中的条件以反映这一点。(当然,结束时间你必须做同样的事情)
推荐阅读
- android - Android - 如何重新创建 Hilt?
- java - springboot项目中后端收到特殊字符时传递参数含义
- python - 如何在其中添加逗号以使其成为 python 上的正确列表?
- python - 如何使用 Selenium Webdriver 就地使用现有配置文件?
- c++ - 为什么我不能将派生类对象存储在基类数组中然后进行动态转换?C++
- excel - 在单元格 VBA 中查找文本
- julia - 如何声明派生类型的数组?(朱莉娅)
- chart.js - 当 ChartJS 中没有重叠数据时,以全宽渲染来自多个数据集的条形图
- python-3.x - 脚本无法从“打开”cmd 获取信息来读取文件
- java - 如何为魔术位板生成这个预初始化数组?