Skip to content

test csv #6

@freelsn

Description

@freelsn
from collections import defaultdict
import re
import pandas as pd


def extract_value_by_key(name, key):
    pattern = rf'[:\s]*{key}=([\w\d\_]+)'
    ret = re.search(pattern, name)
    if ret:
        value = ret.group(1)
    else:
        value = None
    return value


def process_line_and_save_to_db(line, db):
        
    basic_items = [
        'Site', 'Product', 'SerialNumber', 'Station ID', 
        'Version', 'StartTime', 'EndTime',
    ]
        
    test_items = [
        'tc', 'subtc', 'subsubtc',
        'tech', 'subtech',
        'ant', 'rate', 'freq', 'pwr',
        'stream', 'nyqg',
    ]
    
    def append_basic_items():
        for name in basic_items:
            db[name].append(line[name])
    
    def extract_item_and_add_to_db(test_name):
        for item_name in test_items:
            value = extract_value_by_key(test_name, item_name)
            db[item_name].append(value)
    
    for name, value in line.items():
        if name.startswith('tc='):
            append_basic_items()
            extract_item_and_add_to_db(name)
            db['value'].append(value)
            

def process_table(df):
    db = defaultdict(list)
    for _, line in df.iloc[5:].iterrows():
        process_line_and_save_to_db(line, db)
    return db


src_fname = 'CSV_test name key extract_123.csv'
src_df = pd.read_csv(src_fname, skiprows=1)
db = process_table(src_df)
df = pd.DataFrame.from_dict(db)
df.to_csv('test_csv_cleaned.csv', index=False)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions