写入csv的时候,图1中τ怎么才能变成图2的τ这种,就是如果同一时刻有两个或两个以上的bucket的时候,分成几行写
(图3是简化版,方便理解)
vol = pd.read_csv("C:/Users/DELL/Desktop/dt3.csv", header=0, usecols=['v'])
vol = np.array(vol)
T=[] #定义为列表
V=0 #初始成交量
h=0
h=[]
τ=[]
A=326881602 #每个交易篮子的交易量
for i in range(len(vol)):
V=V+vol[i] #迭代,成交量=上一时刻成交量+这一时刻的成交量
k=np.ceil(V/A) #对篮子数向上取整
T.append(k)
T[i]=k #第i时刻所需要的篮子数
h.append(0)
h[i]=0
if np.ceil(V/A)-V/A==0: #篮子数为整数
h.append(1)
h[i]=1 # p[i]=1#如果篮子数为整数,那么下一时刻从新的交易篮子开始填充
τ.append(T[i])
τ[0]=[1,int(list(T[0])[0])] #第一个时刻对应的篮子编号
if i>=1:
τ[i] = [T[i - 1] + h[i - 1], T[i]]
#########----------1.将τ写入dataframe
filepath = 'C:/Users/DELL/Desktop/dt3.csv'
dataheader1 = ['date','time','v','p','cum']
data_original1 = pd.read_csv(filepath, sep=',' ,header=0, names=dataheader1, skip_blank_lines=True)
data_original1['τ']=τ #添加一列τ,赋值为列表(d),打印
print(data_original1)#完成写入
图1: