鱼C论坛

 找回密码
 立即注册
查看: 1360|回复: 3

python的 有关生成列表的问题

[复制链接]
发表于 2020-7-30 15:54:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如何才能实现如下效果:

我直接填入范围 20190101-8  20190102-3,
这个范围 -号前面是年月日,-号后面是range(0,10)
代码就能生成列表:
20190101-8
20190101-9
20190102-0
20190102-1
20190102-2
20190102-3


我自己的代码,实现不了这样的效果。搞不懂这个循环要如何写了。请各位帮忙.
# -*- coding: utf-8 -*-
 
import time
from datetime import datetime
 
date_list=[datetime.strftime(x,'%Y%m%d') for x in list(pd.date_range('20190101', '20190102'))]
#print(date_list)
d_list=[]
for m in date_list:
  for n in range(10):
    d_list.append( m + str(n).zfill(2))
#print(d_list)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-30 16:20:12 | 显示全部楼层
本帖最后由 Stubborn 于 2020-7-30 16:21 编辑

你需要实现三个部分的循环。对实现有什么疑问在说。或者 自己去实现自己的迭代器

1.头部残缺部分。 20190101-8   20190101-9
2.中间部分         
3尾部残缺部分。 20190102-0 ----> 3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-30 17:15:10 | 显示全部楼层
试试这个:
import pandas as pd

a=pd.DataFrame({})
date_list = [x.strftime('%Y-%m-%d') for x in list(pd.date_range(start='20190101', end='20190103'))]
print(date_list)
for list in date_list:
    b=pd.DataFrame({'time':list,'index':range(0,10)})
    a=pd.concat([a,b])
for i in a['time']:
    for j in a['index']:
        k=str(i)[0:4]+str(i)[5:7]+str(i)[8:10]+'-'+str(j)
        a['num']=k
print(a)
生成的num列,再用你想要的区间,取出来就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-31 07:59:47 | 显示全部楼层
疾风怪盗 发表于 2020-7-30 17:15
试试这个:
import pandas as pd

非常感谢了。。我试试看,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 17:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表