import pandas as pd
import numpy as np
def copy(df, row, exist): # 自定义函数,用以根据计算结果进行行的复制任务
idx = []
for r in range(exist):
idx.append(row)
return df.iloc[idx, :]
DF = pd.read_csv("test.csv", header=0)
tau = np.array(DF[['tau']])
"""
源文件的内容是这样的
date time tau
0 1 11 [1, 3]
1 2 22 [3, 4]
2 3 33 [5, 5]
"""
dfs = []
for t in range(len(tau)): # 遍历每一行,计算应产生几个表,然后将各部分存在dfs列表里
left = eval(tau[t][0])[0]
right = eval(tau[t][0])[1]
compare = right - left
EXIST = compare + 1
dfs.append(copy(DF, t, EXIST))
result = dfs[0]
for index in range(1, len(dfs)): # 拼接每个在dfs中的子结构
step = dfs[index]
result = pd.concat([result, step])
result.reset_index(drop = True, inplace = True) # 结果是拼凑而成的,所以可以重置以消除重复的索引
print(result) # to_csv()也可以写
"""
运行后的结果是这样的
date time tau
0 1 11 [1, 3]
1 1 11 [1, 3]
2 1 11 [1, 3]
3 2 22 [3, 4]
4 2 22 [3, 4]
5 3 33 [5, 5]
"""