描述:将创建的标题行存到数组内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
帮到你了吗?点个赞吧😊