【问题标题】:How to append in different columns with running for loop in Python3?如何在 Python3 中运行 for 循环在不同的列中追加?
【发布时间】:2017-12-10 22:37:30
【问题描述】:

我正在尝试创建一个程序来将文本文件中的数据收集到一个文本文件中。由于某种原因,我遇到了很多问题。一个最终输出文件由 10 个不同的起始文件(序列号 1-10.txt)组成。这些数据需要放在不同列的文件(文本或 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

等等……

有什么建议或尝试吗?

【问题讨论】:

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


    【解决方案1】:

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

    问题的部分代码: 对于数据范围内的 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 文件中,“Column1 Column2... 和下面的数据”在 csv 输出中都在 ONE COLUMN 中。所以,我决定改用文本文件。

    【讨论】:

      猜你喜欢
      • 2018-11-16
      • 2018-10-04
      • 1970-01-01
      • 2020-06-01
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      相关资源
      最近更新 更多