Вот один лайнер для скриптов bash, чтобы получить список будних дней, это python 3. Легко модифицируется для любого, int в конце - это количество дней в прошлом, которое вы хотите.
python -c "import sys,datetime; print('\n'.join([(datetime.datetime.today() - datetime.timedelta(days=x)).strftime(\"%Y/%m/%d\") for x in range(0,int(sys.argv[1])) if (datetime.datetime.today() - datetime.timedelta(days=x)).isoweekday()<6]))" 10
Вот вариант, чтобы указать дату начала (или, вернее, конца)
python -c "import sys,datetime; print('\n'.join([(datetime.datetime.strptime(sys.argv[1],\"%Y/%m/%d\") - datetime.timedelta(days=x)).strftime(\"%Y/%m/%d \") for x in range(0,int(sys.argv[2])) if (datetime.datetime.today() - datetime.timedelta(days=x)).isoweekday()<6]))" 2015/12/30 10
. Здесь вариант для произвольной даты начала и окончания. не то, что это не очень эффективно, но полезно для ввода цикла for в сценарии bash:
python -c "import sys,datetime; print('\n'.join([(datetime.datetime.strptime(sys.argv[1],\"%Y/%m/%d\") + datetime.timedelta(days=x)).strftime(\"%Y/%m/%d\") for x in range(0,int((datetime.datetime.strptime(sys.argv[2], \"%Y/%m/%d\") - datetime.datetime.strptime(sys.argv[1], \"%Y/%m/%d\")).days)) if (datetime.datetime.strptime(sys.argv[1], \"%Y/%m/%d\") + datetime.timedelta(days=x)).isoweekday()<6]))" 2015/12/15 2015/12/30
Итак, если вы поймете это правильно, вот как вы выполняете такого рода итерации с пандами (+ zip):
for url, kwords in zip(df.url, df.keywords):
# the url
# your code here
вы также можете использовать синтаксис, похожий на диктовку, если вам больше нравится: [113 ]
for url, kwords in zip(df["url"], df["keywords"]):
# the url
# your code here
Надеюсь, это ответит на твой вопрос