正常情况,有些版本的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:]:# 将字符串拆分为几行,然后按空格拆分每行并转换为 DataFramelines = 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)