【发布时间】:2020-05-25 06:23:48
【问题描述】:
我对 Python 还很陌生。我正在利用 Python 的 holidays 包,该包按国家/地区划分公共假期。我正在寻找一个函数,它可以遍历任意数量的国家并返回一个带有 3 列的 dataframe:
Date, Holiday, Country
基于我有限的知识,我想出了这种实现方式:
import holidays
def getholidayDF(*args):
holidayDF = pd.DataFrame(columns=['Date','Holiday','Country'])
for country in args:
holidayDF.append(sorted(holidays.CountryHoliday(country,years=np.arange(2014,2030,1)).items()))
holidayDF['Country'] = country
return holidayDF
holidays = getholidayDF('FRA', 'Norway', 'Finland', 'US', 'Germany', 'UnitedKingdom', 'Sweden')
这将返回一个空白dataframe。我不知道如何进行!
【问题讨论】:
-
你的
return在你的for循环中。这会立即在第一个循环中脱离函数 -
将 return 移出 for 循环给出了相同的结果。 ://
-
holidayDF['Country'] = country不断将值重新分配给同一个键。字典键必须是唯一的。我们会在这里很长时间,我们会一直这样调试;你应该退后一步,学习一些 Python 基础知识 -
变量和函数名称应遵循
lower_case_with_underscores样式。附加到 DataFrame 不是很好,您应该真正阅读文档。你用 DataFrame 做什么? -
..还有很多其他的例子你可以在here找到。
标签: python function numpy dataframe python-holidays