将数据框附加到CSV时添加运行编号

时间:2017-05-09 11:45:08

标签: python csv pandas dataframe indexing

我在python中运行模拟,将结果写入Pandas DataFrame并将数据附加到CSV文件。代码将运行多次,可能会有参数变化。有没有一种智能方法可以将模拟的运行编号记录到CSV文件中以供将来进行数据分析?

    import pandas as pd
    import random

    # Create a data frame with random values of random length, append
    # to a data frame and write to file.

    df = dp.DataFrame()

    for i in range(3):
       length = random.randint(3,20)
       aa = [random.randint(0,25) for i in range(length)]
       aa = [random.randint(0,25) for i in range(length)]
       run_n = [i * length]

       aabb = list(zip(aa, bb, run_n)
       aabb_df = pd.DataFrame(data=aabb, columns=['aa', 'bb', 'run_N'])
       df = df.append(aabb_df)

    with open(myfile, 'a') as csvfile:
       df.to_csv(csvfile, index=False, header=False)

记录for循环的运行次数是直截了当的,但我怀疑是不正确的。是否可以检查运行次数并从那里继续计数而不读取整个文件。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

您总是可以将运行编号设为从均匀随机分布中提取的整数,这样就不太可能绘制出两个相同的值:

run_n = np.random.randint(1e9)

或者,您可以增加每个运行编号,以便保证使用run_n策略不会使两个运行具有相同的counter