import pandas as pd
test = {'日期':['2020-05-01','2020-05-02','2020-05-03','2020-05-04']}
test = pd.DataFrame(test)
print(test)
larbor_day = ['2020-05-01','2020-05-02']
def festival(date):
for date in test['日期']:
if date in larbor_day:
return '劳动节'
else:
return '否'
test['节假日'] = test['日期'].map(festival)
print(test)
各位大佬,为什么return返回的结果跟实际不符合呢。
日期里面比如"2020-05-03"是不在larbor_day里面的,但是返回的结果却是"劳动节"。
想要日期“2020-05-03”对应返回的结果是否,应该如何调整呢。
import pandas as pd
test = {'日期': ['2020-05-01', '2020-05-02', '2020-05-03', '2020-05-04']}
test = pd.DataFrame(test)
print(test)
larbor_day = ['2020-05-01', '2020-05-02']
def festival(date):
for i in test['日期']:
if date in larbor_day:
return '劳动节'
else:
return '否'
test['节假日'] = test['日期'].map(festival)
print(test)
第十一行循环的时候用i不用date
在festival函数中不需要再用循环了,map函数就是针对数组每一个元素映射的。将for date in test['日期']:那句去掉即可。另外用lambda函数更为简单,test['节假日'] = test['日期'].map(lambda x: '劳动节' if x in larbor_day else '否')
import pandas as pd
test = {'日期': ['2020-05-01', '2020-05-02', '2020-05-03', '2020-05-04']}
test = pd.DataFrame(test)
print(test)
larbor_day = ['2020-05-01', '2020-05-02']
def festival(date):
if date in larbor_day:
return '劳动节'
else:
return '否'
test['节假日'] = test['日期'].map(festival)
print(test)
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m