我有一个pandas数据框,其列如下所示:
'Column name'
NaN
[11am-2am]
NaN
[9am-10pm]
NaN
[10:30am-10:30pm]
请参阅下面的图片以进一步说明:row_explanation 我试图以[10:30 am-10:00pm]
的相同格式制作所有行working_hours_daily=schedule['Daily'] // column name is 'Daily'
c=lambda x: str(x)
b=lambda x: str(x).replace('-',',').replace('am',':00am').replace('pm',':00pm').split(',')
times_daily.apply(c)
open_hours_daily=[]
for i in (range(0,len(times_daily))):
if ":" not in times_daily:
working_hours_daily=times_daily.apply(b)
print (working_hours_daily)
open_hours_daily.append(working_hours_daily)
这个想法是在":"不在字符串中,
因此我不使用语法
但代码不遵守该条件并将b应用于所有行,
所以有些行结果很好:[[' 11:00am,2:00 am']]
但其他已包含':'结果如下:[[' 10:30:00am,10:30:00 pm']]
非常感谢任何帮助。
卡米尔
答案 0 :(得分:1)
这应该有效:
b = lambda x: str(x) if str(x).contains(':') else str(x).replace('-',',').replace('am',':00am').replace('pm',':00pm').split(',')
times_daily.apply(b)
如果你可以请发布样本数据集,那就太好了,所以我可以调试这段代码。