数据写入计算模块

import numpy as np;
import math
import pandas as pd;
import csv

f = open('data.csv','w',newline='',encoding='utf-8-sig')
csv_writer = csv.writer(f)
csv_writer.writerow(["tableName","TcpCount","UdpCount","Other","SrcIpEntropy","DstIpEntropy","SrcPortEntropy","DstPortEntropy","DstPayloadBytes", "DstTotalBytes","DstPacketCount","COUNT"])
def entropy(list):                              #求熵函数
    result=-1;
    if(len(list)>0):
        result=0;
    for x in list:
        result=((-x)*math.log(x,2)+result)
    return result;

i=1
while(i < 147):
    t="table"+str(i)
    df=pd.read_csv(t+".csv")
    ILPC=df.loc[:,'ipLayerProtocolCode'].value_counts()             #ipLayerProtocolCode中各个的数量
    FSSI=df.loc[:,'firstSeenSrcIp'].value_counts(normalize=True)      #firstSeenSrcIp的概率
    FSSIList=list(FSSI.values)
    FSDI=df.loc[:,'firstSeenDestIp'].value_counts(normalize=True)      #firstSeenDestIp的概率
    FSDIList=list(FSDI.values)
    FSSP=df.loc[:,'firstSeenSrcPort'].value_counts(normalize=True)      #firstSeenSrcPort的概率
    FSSPList=list(FSSP.values)
    FSDP=df.loc[:,'firstSeenDestPort'].value_counts(normalize=True)      #firstSeenDestPort的概率
    FSDPList=list(FSDP.values)
    FSDPB=df.loc[:,'firstSeenDestPayloadBytes'].sum()                    #firstSeenDestPayloadBytes的总和
    FSDTB=df.loc[:,'firstSeenDestTotalBytes'].sum()                    #firstSeenDestTotalBytes的总和
    FSDPT=df.loc[:,'firstSeenDestPacketCount'].sum()                    #firstSeenDestPacketCount的总和
    totalCount=df.loc[:,'firstSeenDestPacketCount']                            #总的连接数
    if(len(ILPC)==3):
        x=ILPC[2]
    else:
        x=0
    count=totalCount.shape[0]
    print(i)
    csv_writer.writerow([t,ILPC[0],ILPC[1],x,entropy(FSSIList),entropy(FSDIList),entropy(FSSPList),entropy(FSDPList),FSDPB, FSDTB,FSDPT,count])
    i=i+1
f.close()
print("1")




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值