Python 有顺序问题的日期时间
Python Datetime with sequential issue
我正在尝试编写一个脚本,其中列表的 3 个变量。
首先,看我现在的剧本:
import datetime as dt
import pandas as pd
x = ['jhon doe', 'GX']
y = ['donald ted', 'GY']
Z = ['smith joe', 'GZ']
start_date = dt.datetime(2019, 4,12)
end_date = dt.datetime(2019, 4,21)
daterange = pd.date_range(start_date, end_date)
for date in daterange:
print(date)
我为这样的输出感到困扰:
12/04/2019, jhone doe, GX
13/04/2019, donald ted, GY
14/04/2019, smith jhoe, GZ
15/04/2019, jhone doe, GX
16/04/2019, donald ted, GY
17/04/2019, smith jhoe, GZ
18/04/2019, jhone doe, GX
19/04/2019, donald ted, GY
14/04/2019, smith jhoe, GZ
21/04/2019, jhone doe, GX
看到我的预期输出就清楚了
谁能告诉我这个怎么做?上面给出了 3 个变量。
我觉得没必要写太多
您的工具箱中似乎缺少一个工具:from itertools import cycle
。
A cycle
允许您创建一个可以连续遍历列表的迭代器。如果您到达列表的末尾,它将返回到开头。
from itertools import cycle
import datetime as dt
import pandas as pd
x = ['jhon doe', 'GX']
y = ['donald ted', 'GY']
z = ['smith joe', 'GZ']
r = (x, y, z)
pool = cycle(r)
start_date = dt.datetime(2019, 4,12)
end_date = dt.datetime(2019, 4,21)
daterange = pd.date_range(start_date, end_date)
for date in daterange:
curent_person = next(pool)
print('{}, {}, {}'.format(date.strftime('%d/%m/%Y'), curent_person[0], curent_person[1]))
输出:
12/04/2019, jhon doe, GX
13/04/2019, donald ted, GY
14/04/2019, smith joe, GZ
15/04/2019, jhon doe, GX
16/04/2019, donald ted, GY
17/04/2019, smith joe, GZ
18/04/2019, jhon doe, GX
19/04/2019, donald ted, GY
20/04/2019, smith joe, GZ
21/04/2019, jhon doe, GX
我会使用模函数按循环 (x, y, Z) 打印它。
import datetime as dt
import pandas as pd
x = ['jhon doe', 'GX']
y = ['donald ted', 'GY']
Z = ['smith joe', 'GZ']
start_date = dt.datetime(2019, 4,12)
end_date = dt.datetime(2019, 4,21)
daterange = pd.date_range(start_date, end_date)
i=0
for date in daterange:
if i % 3 == 0:
print (date.strftime('%d/%m/%Y'), *x, sep=',')
elif i % 3 == 1:
print (date.strftime('%d/%m/%Y'), *y, sep=',')
else:
print (date.strftime('%d/%m/%Y'), *Z, sep=',')
i+=1
结果:
12/04/2019,jhon doe,GX
13/04/2019,donald ted,GY
14/04/2019,smith joe,GZ
15/04/2019,jhon doe,GX
16/04/2019,donald ted,GY
17/04/2019,smith joe,GZ
18/04/2019,jhon doe,GX
19/04/2019,donald ted,GY
20/04/2019,smith joe,GZ
21/04/2019,jhon doe,GX
我正在尝试编写一个脚本,其中列表的 3 个变量。
首先,看我现在的剧本:
import datetime as dt
import pandas as pd
x = ['jhon doe', 'GX']
y = ['donald ted', 'GY']
Z = ['smith joe', 'GZ']
start_date = dt.datetime(2019, 4,12)
end_date = dt.datetime(2019, 4,21)
daterange = pd.date_range(start_date, end_date)
for date in daterange:
print(date)
我为这样的输出感到困扰:
12/04/2019, jhone doe, GX
13/04/2019, donald ted, GY
14/04/2019, smith jhoe, GZ
15/04/2019, jhone doe, GX
16/04/2019, donald ted, GY
17/04/2019, smith jhoe, GZ
18/04/2019, jhone doe, GX
19/04/2019, donald ted, GY
14/04/2019, smith jhoe, GZ
21/04/2019, jhone doe, GX
看到我的预期输出就清楚了
谁能告诉我这个怎么做?上面给出了 3 个变量。
我觉得没必要写太多
您的工具箱中似乎缺少一个工具:from itertools import cycle
。
A cycle
允许您创建一个可以连续遍历列表的迭代器。如果您到达列表的末尾,它将返回到开头。
from itertools import cycle
import datetime as dt
import pandas as pd
x = ['jhon doe', 'GX']
y = ['donald ted', 'GY']
z = ['smith joe', 'GZ']
r = (x, y, z)
pool = cycle(r)
start_date = dt.datetime(2019, 4,12)
end_date = dt.datetime(2019, 4,21)
daterange = pd.date_range(start_date, end_date)
for date in daterange:
curent_person = next(pool)
print('{}, {}, {}'.format(date.strftime('%d/%m/%Y'), curent_person[0], curent_person[1]))
输出:
12/04/2019, jhon doe, GX
13/04/2019, donald ted, GY
14/04/2019, smith joe, GZ
15/04/2019, jhon doe, GX
16/04/2019, donald ted, GY
17/04/2019, smith joe, GZ
18/04/2019, jhon doe, GX
19/04/2019, donald ted, GY
20/04/2019, smith joe, GZ
21/04/2019, jhon doe, GX
我会使用模函数按循环 (x, y, Z) 打印它。
import datetime as dt
import pandas as pd
x = ['jhon doe', 'GX']
y = ['donald ted', 'GY']
Z = ['smith joe', 'GZ']
start_date = dt.datetime(2019, 4,12)
end_date = dt.datetime(2019, 4,21)
daterange = pd.date_range(start_date, end_date)
i=0
for date in daterange:
if i % 3 == 0:
print (date.strftime('%d/%m/%Y'), *x, sep=',')
elif i % 3 == 1:
print (date.strftime('%d/%m/%Y'), *y, sep=',')
else:
print (date.strftime('%d/%m/%Y'), *Z, sep=',')
i+=1
结果:
12/04/2019,jhon doe,GX
13/04/2019,donald ted,GY
14/04/2019,smith joe,GZ
15/04/2019,jhon doe,GX
16/04/2019,donald ted,GY
17/04/2019,smith joe,GZ
18/04/2019,jhon doe,GX
19/04/2019,donald ted,GY
20/04/2019,smith joe,GZ
21/04/2019,jhon doe,GX