Python:遍历假期国家列表
Python: Looping over list of countries for holidays
我是 Python 的新手。我正在利用 Python 的 holiday 套餐,其中有 public 个国家/地区的假期。为了得到一个国家的假期,你可以运行像这样:
sorted(holidays.US(years=np.arange(2014,2030,1)).items()
这将给出日期和假期。现在,我想要一些国家的数据。我如何遍历国家列表而不是每次都替换上面代码中的国家名称?
这里考虑的国家是:
[FRA, Norway, Finland, US, Germany, UnitedKingdom, Sweden]
我试过这样的 for 循环:
countrylistLoop = ['FRA', 'Norway', 'Finland', 'US', 'Germany', 'UnitedKingdom', 'Sweden']
for i in countrylistLoop:
print(sorted(holidays.i(years=np.arange(2014,2030,1)).items()),columns=['Date','Holiday'])
这会抛出一个 AttributeError:
AttributeError: module 'holidays' has no attribute 'i'.
这是有道理的,但我不确定如何继续!
理想情况下,我想循环并将结果存储在数据框中。非常感谢任何帮助!谢谢!
您可以通过以下方式获取物品
import holidays
countrylistLoop = ['FRA', 'Norway', 'Finland', 'US', 'Germany', 'UnitedKingdom', 'Sweden']
for country in countrylistLoop:
hd = sorted(holidays.CountryHoliday(country, years=np.arange(2014,2030,1)).items())
但它不使用 columns
参数进行排序。
或者您可以根据索引对项目进行排序
hd = sorted(list(holidays.CountryHoliday(country,
years=np.arange(2014,2030,1)).items()),
key=lambda holiday: holiday[1])
要提供额外的国家/地区标识符,您可以这样做:
all_holidays = []
country_list = ['UnitedStates', 'India', 'Germany']
for country in country_list:
for holiday in holidays.CountryHoliday(country, years = np.arange(2018,2021,1)).items():
all_holidays.append({'date' : holiday[0], 'holiday' : holiday[1], 'country': country})
all_holidays = pd.DataFrame(all_holidays)
all_holidays
结果将是:
enter image description here
for i in countrylistLoop:
holiday = getattr(holidays, i)(years=np.arange(2014,2030,1)).items()
sorted(holiday)
print(holiday)
要动态获取属性,请使用 getattr
。
否则,我将 sorted
函数拆分出来,因为它 returns None
,就像 python 的所有变异内置函数一样。
我是 Python 的新手。我正在利用 Python 的 holiday 套餐,其中有 public 个国家/地区的假期。为了得到一个国家的假期,你可以运行像这样:
sorted(holidays.US(years=np.arange(2014,2030,1)).items()
这将给出日期和假期。现在,我想要一些国家的数据。我如何遍历国家列表而不是每次都替换上面代码中的国家名称? 这里考虑的国家是:
[FRA, Norway, Finland, US, Germany, UnitedKingdom, Sweden]
我试过这样的 for 循环:
countrylistLoop = ['FRA', 'Norway', 'Finland', 'US', 'Germany', 'UnitedKingdom', 'Sweden']
for i in countrylistLoop:
print(sorted(holidays.i(years=np.arange(2014,2030,1)).items()),columns=['Date','Holiday'])
这会抛出一个 AttributeError:
AttributeError: module 'holidays' has no attribute 'i'.
这是有道理的,但我不确定如何继续!
理想情况下,我想循环并将结果存储在数据框中。非常感谢任何帮助!谢谢!
您可以通过以下方式获取物品
import holidays
countrylistLoop = ['FRA', 'Norway', 'Finland', 'US', 'Germany', 'UnitedKingdom', 'Sweden']
for country in countrylistLoop:
hd = sorted(holidays.CountryHoliday(country, years=np.arange(2014,2030,1)).items())
但它不使用 columns
参数进行排序。
或者您可以根据索引对项目进行排序
hd = sorted(list(holidays.CountryHoliday(country,
years=np.arange(2014,2030,1)).items()),
key=lambda holiday: holiday[1])
要提供额外的国家/地区标识符,您可以这样做:
all_holidays = []
country_list = ['UnitedStates', 'India', 'Germany']
for country in country_list:
for holiday in holidays.CountryHoliday(country, years = np.arange(2018,2021,1)).items():
all_holidays.append({'date' : holiday[0], 'holiday' : holiday[1], 'country': country})
all_holidays = pd.DataFrame(all_holidays)
all_holidays
结果将是: enter image description here
for i in countrylistLoop:
holiday = getattr(holidays, i)(years=np.arange(2014,2030,1)).items()
sorted(holiday)
print(holiday)
要动态获取属性,请使用 getattr
。
否则,我将 sorted
函数拆分出来,因为它 returns None
,就像 python 的所有变异内置函数一样。