今天在处理txt文件时遇到了一些问题,它不是格式化的数据,行前行末都有空格,而且每个元素的分隔符不一致,没法进行分割处理,如果用read_csv或者read_table函数是无法直接处理的,得到的只有一个数据块,txt数据如下

所以我想给它先转换成格式化的数据,再利用函数进行处理。
先用原生Python对空格分隔符进行处理

# 读取
inputfile = open('_data_1lognorm_nh42so4_ 5_12.out_new.txt', 'r')
a = []
# 将数据进行格式化处理,获取dataframe类型数据
for line in inputfile:
    #剪切掉行前和行末的空格,若只想剪切行前,则用line.lstrip(),行末则用line.rstrip()
    line = line.strip()
    #分割,用split(),默认是按空格分割,无论是一个空格还是多个空格均可
    wordlist = line.split()
    #可以将字符串转化为浮点型数据
    #int_list = [float(x) for x in wordlist]
    a.append(wordlist)

然后将格式化的数据存为dataframe类型数据

# 添加表头
names = ['x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9', ]
df = pd.DataFrame(columns=names, data=a)
# 修改格式后的源数据
df.to_csv('dataframe.csv')

这样就得到了格式化的数据,如下所示

然后就可以利用pandas,或者numpy进行数据处理了

更多推荐

数据清洗,Python读取txt数据,txt数据分隔符处理