欢迎光临
我们一直在努力

关于日常性指标提取AI辅助案例分享

1、工作背景需求       

在日常工作中,更新工参、升级操作等,需从网管中提取最新数据,下载后再重复整理,如下表:经数据整理后,最终想要保留的是Nodeid列、usedAddress列中IP地址。

NodeId

TransportId

RouterId

InterfaceIPv4Id

AddressIPv4Id

usedAddress

xxxx

1

Traffic_OAM

Traffic_OAM

Traffic_OAM

10.10.100.100/30

xxxx

1

Node_Internal_F1

NRDU

1

10.10.100.101/30

2、AI工具安装与应用实例

以往需要手动制作宏工具或者在表格内编辑公式,现在借助AI工具可以实现自动化处理,可以在个人电脑中安装以下软件:

  • python3.12软件:稳定版本,免费下载并安装环境。

  • pycharm软件:个人建议安装(可选),PyCharm‌ 是一个‌集成开发环境(IDE),为您提供编写、调试和管理 Python 代码的图形化界面。本人安装的是community-2025.1.2。

  • TRAE IDE:字节公司AI工具,当前免费下载使用,个人看重其支持用自然语言对话模式,支持代码的编写、调试、测试等,而且内置智能体,多任务处理等。

  •       在安装好上述软件后,即完成了第一步的工作环境搭建;第二步AI工具应用:先打开TRAE IDE工具,用准备好的提示词,可以通过自然语言跟SOLO Coder聊天,期间等待其生成、测试以及工具导出;第三步结果验证:将生成的python程序,在pycharm中打开,运行即可,若结果与预期一致,则可做专题保存;否则,继续回到第二步中调试。

    运行结果如下:可以新定义一个文件夹,每次放入新的网管ip.txt地址文件,经过pycharm运行程序后,生成的traffic_oam_processed文件内容就是想要的结果。

    图片

    需要注意的是:文中的表格内信息是“隐”去敏感信息的,喂给AI部分也是如此,敏感数据不能网上“裸奔”。

    3、案例代码展示

    import pandas as pd
    import re

    def process_traffic_data(input_file, output_file='output.csv',
    node_id_col=0, router_id_col=2, used_addr_col=5, chunk_size=10_000):
    """
    5G流量数据处理:筛选Traffic_OAM节点并仅保留usedAddress中的IP地址

    Args:
    input_file: 输入TXT文件路径
    output_file: 输出CSV文件路径
    node_id_col: NodeId所在列索引(从0开始)
    router_id_col: RouterId所在列索引(用于筛选Traffic_OAM)
    used_addr_col: usedAddress所在列索引
    chunk_size: 分块处理大小(大文件适用)
    """
    try:
    # 1. 探测文件表头信息
    with open(input_file, 'r', encoding='utf-8') as f:
    for _ in range(3):
    f.readline() # 跳过前3行
    header_line = f.readline().strip()
    col_count = len(re.split(r'\\s+', header_line))

    # 验证列索引是否有效
    if max(node_id_col, router_id_col, used_addr_col) >= col_count:
    print(f"错误:列索引超出范围(共{col_count}列,索引范围0~{col_count – 1})")
    return

    # 2. 分块读取与处理
    reader = pd.read_csv(
    input_file,
    sep=r'\\s+', header=3, encoding='utf-8',
    engine='python', chunksize=chunk_size
    )

    result_chunks = []
    total_rows = 0

    for chunk in reader:
    # 选择需要的列:NodeId, RouterId, usedAddress
    selected_cols = [node_id_col, router_id_col, used_addr_col]
    chunk = chunk.iloc[:, selected_cols]
    chunk.columns = ['NodeId', 'RouterId', 'usedAddress']

    # 筛选Traffic_OAM记录(基于RouterId列)
    mask = chunk['RouterId'].str.contains('Traffic_OAM', na=False)
    filtered = chunk[mask]

    if not filtered.empty:
    # 提取IP地址(仅保留第一个'/'前的内容)
    filtered['usedAddress'] = filtered['usedAddress'].str.split('/', n=1).str[0]

    # 仅保留NodeId和处理后的IP地址
    filtered = filtered[['NodeId', 'usedAddress']]

    result_chunks.append(filtered)
    total_rows += len(filtered)

    if not result_chunks:
    print("未找到包含'Traffic_OAM'的记录")
    return

    # 3. 合并结果并保存
    result_df = pd.concat(result_chunks, ignore_index=True)
    result_df.to_csv(output_file, index=False, encoding='utf-8')
    print(f"处理完成!共筛选到 {total_rows} 条记录,已保存至 {output_file}")
    return result_df

    except FileNotFoundError:
    print(f"错误:文件 '{input_file}' 未找到")
    except Exception as e:
    print(f"处理错误:{str(e)}")

    if __name__ == "__main__":
    input_path = r"E:\\pathon\\in_out\\5g_ip\\5g_ip.txt"
    output_path = r"E:\\pathon\\in_out\\5g_ip\\traffic_oam_processed.csv"

    # 修正参数:node_id_col=0(原始NodeId列),router_id_col=2(用于筛选)
    result = process_traffic_data(input_path, output_path,
    node_id_col=0, router_id_col=2, used_addr_col=5)

    if result is not None:
    print("\\n数据预览(仅保留NodeId和IP地址):")
    print(result.head())

    赞(0)
    未经允许不得转载:171主机测评 » 关于日常性指标提取AI辅助案例分享
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址