python处理txt多组数据clumns、index也读入进行计算
正常情况,有些版本的numpy包能够直接计算,但是有些直接自动抹去了clumns和index一定要重新读取一下
#!usr/bin/env python # -*- coding:utf-8 -*- """ @author: Suyue @file: speedeeinsert.py @time: 2024/04/07 @desc: """ import numpy as np import pandas as pd df1 = pd.read_excel('G:/尺度速度.xls') file_path = 'G:/NM004-20230627224400-20230627224859-0.txt' # 读整个txt文件读取到单个字符串 with open(file_path, 'r', errors='ignore') as file: file_content = file.read() # 按时间戳拆分内容以查找单独的部分 # 时间戳的格式为 YYYY-MM-DD HH:MM:SS,因此我们将使用正则表达式根据此模式进行拆分 import re sections = re.split(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\n', file_content) # print(sections) # 如果txt第一个元素为空值(由于拆分),则将其删除 if not sections[0]: sections.pop(0) # 将每个部分放入列表 list = [] for section in sections[1:]: # 将字符串拆分为几行,然后按空格拆分每行并转换为 DataFrame lines = section.strip().split('\n') matrix = [line.split() for line in lines] df = pd.DataFrame(matrix) df.columns = df1['直径'] df.index = df1['速度'] # print(df) # 需要将DataFrame转换为numpy数组,这步是为了解决col和index消失的问题 # 而我们后面的计算恰恰要算col里的内容 numpy_array = df.to_numpy() # 将索引和列转换为NumPy数组并进行拼接 index_array = np.array(df.index) columns_array = np.array(df.columns) # 拼接索引和列到数据前面 combined_array = np.concatenate([[columns_array,index_array], numpy_array], axis=0) # 将df放入list中 list.append(combined_array) # 先将列表元素转换为adarray数组 list1 = np.array(combined_array) print(list1)