将所有值的组合写入cs

2024-09-28 19:07:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个包含以下格式的csv文件。对于第一列,ABC重复3次,AAA1也重复3次。然后AAA1递增1变成AAA2,然后再递增1就变成AAA3。我想重复这个增量N次,然后切换到BBB1,也重复N次。下面是我的代码。我知道他们错了。请帮帮我。在

with open(file.csv, 'r') as input:
    reader = csv.reader(input,lineterminator='\n', delimiter = ',')

    all = []
    row = next(reader)
    all.append(row)
    alist= ["AAA","BBB"]
    count=0
    for row in reader:
        count+=1
        row.insert(2, (random.choice(alist)+ (str(count)))) 
        all.append(row)

with open(file.csv, 'w') as output:
    writer = csv.writer(output, lineterminator='\n',delimiter = ',')   

这就是我想要创造的

enter image description here

^{pr2}$

Tags: csvinputascountwithopenallreader
2条回答

我相信这就是你想做的:

  number_of_times_to_repeat_stage_prefix = 4
  stage_prefixes = ["AAA","BBB"]
  block_ids = list('ABC')
  text = []
  for stage_prefix in stage_prefixes:
      block_counter = 0
      for i in range(number_of_times_to_repeat_stage_prefix):
          for block in block_ids:
              text.append([block, stage_prefix + str(block_counter+1)])
          block_counter+=1

  with open("E:/file.csv", 'w') as output:
      writer = csv.writer(output, lineterminator='\n',delimiter = ',')
      writer.writerows(text)

当repeat设置为4时,我得到:

^{pr2}$

您最初有一个R标记,不确定您是否愿意接受R解决方案,但这里是:

NN <- 2 #"repeat N times..."
DF <- data.frame("Block ID" = LETTERS[1:3],
                 "Stage ID" = paste0(rep(c("AAA", "BBB"), each = 3 * NN),
                                     rep(1:NN, each = 3)))
write.csv(DF, file = "file.csv")

相关问题 更多 >