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)

 

posted @ 2024-04-16 15:11  秋刀鱼CCC  Views(29)  Comments(0Edit  收藏  举报