用Python循环提取每个月的数据

整个dataset一共12个月的数据,如何用for month in range 循环提取每个月的数据?

假如是如2020-01-01这样日期数据,可使用pandas提取。
样例数据:

date,open,close,high,low,volume
2021-01-04,4.31,4.42,4.45,4.31,84006.0
2021-01-05,4.45,4.3,4.46,4.26,93427.0
2021-01-06,4.29,4.19,4.3,4.14,91958.0
2021-01-07,4.19,3.98,4.19,3.96,95370.0
2021-02-01,3.95,4.04,4.05,3.93,54993.0
2021-02-02,4.13,4.04,4.13,4.02,45825.0
2021-02-03,4.04,4.03,4.16,3.97,63093.0
2021-02-04,4.0,3.98,4.04,3.93,52044.0
2021-03-01,4.9,5.14,5.28,4.86,258844.0
2021-03-02,5.07,4.78,5.09,4.74,191115.0
2021-03-03,4.78,4.86,4.97,4.68,141404.0
2021-03-04,4.82,4.75,4.9,4.73,93465.0

参考代码:

import pandas as pd
df=pd.read_csv('data/600889_1.csv')
for i in range(1,13):
    x=str(i).zfill(2)
    if any(df['date'].str[5:7]==x):
        df0=df[df['date'].str[5:7]==x]
        print(df0)
        df0.to_csv(f'data/600889_1_{x}.csv',index=False)

如有帮助,请点采纳。

既然最终目的是通过for循环提取每个月的数据,不妨用分解法逐个击破,下面提供思路如下:
(1)要实现循环提取,那么就得想办法把数据组装成一个list(列表);
(2)要把Excel表格数据转换成list,你可以逐行读取,也可以使用成熟的numpy库,推荐使用numpy,具体用户可以自行搜索一下;
(3)Excel表格其实就是一个矩阵数据,特别适合用numpy读取,因为numpy本就是为此而生的,所以当你用numpy读取一个二维Excel表格后,结果本就是一个矩阵数组(一般是嵌套列表,即:list嵌套list);
(4)根据Excel表格数据特征,有可能读取出来的数据不太符合你的需求,所以你可能要考虑转置(行列互换),你可以先在Excel中转置后用Python numpy读取。也可以先读取,然后用代码转置

最后你会发现,根据最终目的逆推进行数据处理与数据组装才是核心(如何组装以及组装过程才是个人真正需要思考的地方),实现过程无非是各种Python库的应用,numpy和pandas库可以好好学学哦,希望能帮到你~


dataset  =[1,2,3,4,5,6,7,8,9,10,11,12for month in dataset:
    print (month)
#按你的说法dataset应该是一个列表,如果要用in range方式的话应该是如下方式:
for i in range(len(dataset)):
    mouth = dataset[i]
#也可以是:
for mouth in dataset:
    print(mouth)
#如果dataset不是列表,那需要根据dataset的格式再考虑如何实现

这个要看你month 如何命名的,如果是1-12月这样命名就用:

for  month in  range(1,13):
    ...

如果是0-1月这样命名则:

for  month in  range(12):
    ...
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632