我对编码很陌生并且没有对这个主题进行适当的教育(我的大部分经验都只是通过谷歌搜索而磕磕绊绊)而且我有一项我需要帮助的任务。
我有38个文件,看起来像这样:
NGANo:000a16d_1
Zeta:0.050000
Ds5-95:5.290000
评论:
期间,SD,SV,SA
0.010000 0.000433 0.013167 170.812839
0.020000 0.001749 0.071471 172.720229
0.030000 0.004014 0.187542 176.055129
0.040000 0.007631 0.468785 189.322248
0.050000 0.012815 0.912067 203.359441
0.060000 0.019246 1.556853 210.602517
0.070000 0.025400 1.571091 206.360018
它们是所有.DAT文件,是四列数据(Period,SD,SV,SA),每行是单行空格,另外每行数据末尾有两个空格。
对我来说唯一重要的数据是SA数据,我想从这38个文件中的每个文件中获取SA数据和标题(这个特定的例子是000a16d_1)并将它们全部放在同一张纸上一个excel电子表格(下一个后面的一列),只有标题后跟SA数据。
我尝试了一些不同的东西,但是我仍然坚持如何将一行数据从一列分成4.我不太了解我是否应该使用numpy或大熊猫。我知道第二行到最后一行的所有内容都是正确的,因为当我有打印(表格)它会打印数据行时,我只是不明白如何将单列分成多个。这是我目前的代码,所有的帮助表示赞赏。
import pandas as pd
import numpy as np
import os
import xlsxwriter
#
path = "C:/Users/amihi/Downloads/Plotter_Output"
dirs = os.listdir(path)
#
#
for file in dirs:
table = pd.read_table(file, skiprows=4)
SA = table.loc[:,"SA"]
print(SA)
答案 0 :(得分:0)
如果您愿意,也可以在不使用熊猫的情况下执行此操作。下面的代码只会处理它的表格部分,但不会处理文件顶部的信息。
finalColumns = []
for file in dirs:
with open(file, "r") as f:
for l in f:
line = l.strip("\n")
splitted = line.split()
if len(splitted) > len(columns):
for i in range(len(splitted)):
columns.append([])
counter = 0
for item in splitted:
columns[counter].append(item)
counter += 1
finalColumns.append(columns[3])
添加到其他文件时,只需循环遍历finalColumns,每个项目都应该是文件中的新列。