excel,csv创建一个年月日的标题行(列)或数组

描述:将创建的标题行存到数组内headline,自己用writer函数直接写入到excel第一行即可。直接复制下面的函数,然后在外面for一下参数nummonth使其++即可。

方法:字典和数组的灵活使用。

headline = []
def GetMyDate(nummonth):
    mydate = {'01': [], '02': [], '03': [], '04': [], '05': [], '06': [], '07': [], '08': [], '09': [], '10': [],
              '11': [], '12': []}
    for k in range(nummonth, nummonth+1):
        if k < 10:
            if k in [1, 3, 5, 7, 8]:
                var = 32
            elif k in [4, 6, 9]:
                var = 31
            elif k in [2]:
                var = 29
            key = '0' + str(k)
            for i in range(1, var):
                if i < 10:
                    myday = '0' + str(i)
                elif i > 10:
                    myday = str(i)
                mydate[key].append('2018' + key + myday)
        if k >= 10:
            if k in [10, 12]:
                var = 32
            elif k in [11]:
                var = 31
            key = str(k)
            for i in range(1, var):
                if i < 10:
                    myday = '0' + str(i)
                elif i > 10:
                    myday = str(i)
                mydate[key].append('2018' + key + myday)
    headline=[]
    headline.append("ID")
    for i in mydate:
        for j in mydate[i]:
            headline.append(j)
    print(headline)

==============================分割线======================================

我来更新了:之前的方法太笨了。下面借助于包来实现相关功能。完整代码如下:

import pandas as pd
import datetime
from dateutil.relativedelta import relativedelta


def DateAddOneMonth(in_date):
    # 可以增加一个月,加一天需要更改months
    mydate = datetime.datetime.strptime(in_date, "%Y%m%d")
    out_date = (mydate + relativedelta(months=+1)).strftime('%Y%m%d')
    return out_date


if __name__ == "__main__":
    # ===============时间序列============================
    datecols = []
    dt = pd.date_range(start='20170101', end='20170102', freq="3H")  # freq="D"表示频率为每一天
    # (dt)  # <class 'pandas.core.indexes.datetimes.DatetimeIndex'>
    # print(DateAddOneMonth('20170102'))
    for i in range(len(dt)):
        print(dt[i].strftime("%Y-%m-%d %H"))  # 按格式输出    %Y-%m-%d %H:%M:%S
        datecols.append(dt[i].strftime("%Y-%m-%d %H"))
    print(datecols)
    df = pd.DataFrame(columns=datecols)
    df1 = pd.DataFrame({'date':datecols})
    df.to_csv('row.csv',index=False)
    df1.to_csv('col.csv',index=False)

这是写入成行的结果:

2017-01-01 00,2017-01-01 03,2017-01-01 06,2017-01-01 09,2017-01-01 12,2017-01-01 15,2017-01-01 18,2017-01-01 21,2017-01-02 00

这是写入成列的结果:

date
2017-01-01 00
2017-01-01 03
2017-01-01 06
2017-01-01 09
2017-01-01 12
2017-01-01 15
2017-01-01 18
2017-01-01 21
2017-01-02 00

 

帮到你了吗?点个赞吧😊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_JJW

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值