python雨滴譜刪除不需要的粒徑列值

秋刀鱼CCC發表於2024-05-01

粒徑的取值範圍為:0.31~8mm

因此excel中標記紅色的都需要刪除:

txt檔案為(紅框為留下來的資料),一共五組數,也就是五個時間的數:

那麼我只留下我需要的d的n的資料,刪除不需要的列:

# -*- coding:utf-8 -*-
"""
@author: su
@file: deletlie.py
@time: 2024/05/01
@desc:
"""
import numpy as np
import pandas as pd

file_path = '/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)

date = [x for x in file_content.split('\n') if len(x) == 19]


# 如果txt第一個元素為空值(由於拆分),則將其刪除
if not sections[0]:
    sections.pop(0)

final_data = {}
for i in range(len(sections)):
    final_data[date[i]] = sections[i]




df_final_values = []
for key, value in final_data.items():
    lines = value.strip().split('\n')
    matrix = [line.split() for line in lines]
    df = pd.DataFrame(matrix)
    # 刪除前2列
    df.drop(df.columns[:2], axis=1, inplace=True)
    # 刪除後9列
    df.drop(df.columns[-9:], axis=1, inplace=True)
    df_final_values.append(df.values.tolist())

index = 0
with open('/output.txt', 'w', errors='ignore') as file:
    for key, _ in final_data.items():
        file.write(key + '\n')
        for df_values in df_final_values[index]:
            file.write('\t'.join(df_values) + '\n')
        index += 1
        file.write('\n')

得到:

Δd為當前d-前一個d,剔除不要的紅色值得到:

相關文章