【问题标题】:Adding run number when appending data frame to CSV将数据框附加到 CSV 时添加运行号
【发布时间】:2017-10-07 17:06:52
【问题描述】:

我正在 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 循环记录运行次数是直截了当的,但我怀疑不正确。是否可以在不读取整个文件的情况下检查运行次数并从那里继续计数。

提前谢谢你!

【问题讨论】:

    标签: python csv pandas dataframe indexing


    【解决方案1】:

    您始终可以将运行编号设为从均匀随机分布中抽取的整数,这样就不太可能抽取两个相同的值:

    run_n = np.random.randint(1e9)
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 2021-07-21
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多