итерация по строкам Python dataframe [дубликат]

Вот один лайнер для скриптов 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
0
задан em4019 19 March 2019 в 14:04
поделиться

1 ответ

Итак, если вы поймете это правильно, вот как вы выполняете такого рода итерации с пандами (+ 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

Надеюсь, это ответит на твой вопрос

0
ответ дан Neutrinoceros 19 March 2019 в 14:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: