python数据处理

遇到一个问题,需要读取一个csv文件,然后取其中一列,然后求这一列每个数据出现的概率,然后求其信息熵。

import numpy as np;
import math
import pandas as pd;
df=pd.read_csv("table10.csv")           #读取文件
h=df.loc[:,'firstSeenSrcIp'].value_counts(normalize=True)       #求出其概率
valueList=list(h.values)                #概率输出位series数组,将其转化为list
def entropy(list):                              #此函数求信息熵,将list作为参数传入即可
    result=-1;
    if(len(list)>0):
        result=0;
    for x in list:
        result=((-x)*math.log(x,2)+result)
    return result;
print(entropy(valueList))       #打印

你可能感兴趣的:(自学记录)