如何在Python3中运行for循环追加到不同的列?

时间:2017-07-06 19:09:12

标签: python python-3.x pandas append text-files

我正在尝试创建一个程序,将文本文件中的数据收集到一个文本文件中。由于某种原因,我有很多问题。一个最终输出文件由10个不同的启动文件组成(Serial 1-10.txt)。这些数据需要放在不同列的文件(text或csv)中,然后再转到下一个包含十个串行文件的Data文件夹。

以下代码在每个最终文本文件中输出一个长列,而不是11个不同的列(计算"编号"列)。

for z in datarange:
    f = open('/home/pi/Desktop/Newdata/Data' + str(z) + '.csv', 'a')
   # print(f)
    therange = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    thelist = (folder_list + "Data" + str(z))

    for i in therange:
        lines = open(thelist + "/Serial" + str(i) + ".txt", 'r+')#, encoding='utf-8')  #open that same text file (reading priviledges
        thedata = lines.readline()
        mylist = [int (x) for x in thedata.split(',') if x.strip().isdigit()]
        #locals()["text" + str(i)] = pd.DataFrame(mylist)
        df = pd.DataFrame(mylist)
        f.write(str(df))

我也试过这样的事情:(得到相同的结果。一长列。

df = { 'Column1': [(text1)], 'Column2': [(text2)], 
     'Column3': [(text4)],'Column5': [(text5)],
     'Column6': [(text6)], 'Column7': [(text7)], 'Column8': [(text8)],
     'Column9': [(text9)], 'Column10': [(text10)]}

f.write(str(df))

数据输出摘要:

Column1
0     145
1     146
2     123
3     154
.
.
.
287   140
Column2
0     145
1     144
.
.
.
287   128
Column3

依旧......

任何建议或事情要尝试?

1 个答案:

答案 0 :(得分:0)

万一有人遇到类似的问题,这就是我最终使用的内容。这适用于我的应用程序。我想发布它,因为它适合我的问题的答案,最终得到我想要它做的事。

问题代码的一部分:     对于数据范围中的z:         f = open('/ home / pi / Desktop / Newdata / Data'+ str(z)+'。txt','a')

    therange = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    thelist = (folder_list + "Data" + str(z))

    for i in therange:
        lines = open(thelist + "/Serial" + str(i) + ".txt", 'r+')#, encoding='utf-8')  #open that same text file (reading priviledges
        thedata = lines.readline()
        mylist = [int (x) for x in thedata.split(',') if x.strip().isdigit()]
        locals()["text" + str(i)] = mylist
        if i == 10:
            try:

               df = pd.DataFrame({ 'Column1': text1, 'Column2': text2, 'Column3': text4, 'Column5': text5,
          'Column6': text6, 'Column7': text7, 'Column8': text8,
         'Column9': text9, 'Column10': text10})
               pd.set_option('max_rows', 288)
               pd.set_option('max_colwidth', 11)


               data = df.to_string(index=False)
               f.write(str(data))
            except:
               os.remove('/home/pi/Desktop/Newdata/Data' + str(z) + '.txt')
               pass

我想要完成的任务(平均行数),使用此设置。然后,我能够对所创建的文本文件的每一行进行求和并进行除法,并且还涉及到达每一行的循环。 **如果放在csv文件中,csv输出中的“Column1 Column2 ...和下​​面的数据”全部在“一列”中。所以,我决定使用文本文件。