我有以下CSV数据集。数据表示:A,B,C,D和F - 实体。第2列是规则,最后一列是特定规则的该实体的排名。
A,Rule_1,1
B,Rule_1,1
C,Rule_1,2
D,Rule_1,1
E,Rule_1,2
F,Rule_1,3
A,Rule_2,3
B,Rule_2,1
C,Rule_2,2
D,Rule_2,1
E,Rule_2,2
F,Rule_2,1
我基本上想要对具有规则i和j等级的实体数进行关联挖掘(最多3个实体),并创建一个bucket_ij。基于此,我想找出给定等级为1的实体,哪些实体最有可能有等级2.所以当A,B,D = 1然后是C,E = 2.如何执行这种关联挖掘当某些实体的排名为1时,具有排名2的实体是什么?
答案 0 :(得分:1)
您可以使用pandas。 首先,您必须在csv文件上命名列:
Entities,Rule,Rank
A,Rule_1,1
B,Rule_1,1
C,Rule_1,2
D,Rule_1,1
E,Rule_1,2
F,Rule_1,3
A,Rule_2,3
B,Rule_2,1
C,Rule_2,2
D,Rule_2,1
E,Rule_2,2
F,Rule_2,1
然后把它保存到某处。
import pandas
pathToCsvFile = 'C:\\file.csv' #for example
df = pandas.DataFrame.from_csv(pathToCsvFile,index_col=None)
df.groupby(('Entities','Rank')).count()
我认为你可以得到你想要的东西。它将计算每个实体排名的次数。 输出:
Entities Rank
A 1 1
3 1
B 1 2
C 2 2
D 1 2
E 2 2
F 1 1
3 1
或者:
from scipy import stats
df.groupby(('Entities')).agg(lambda x:stats.mode(x)[0]).Rank
将获得每个实体的模式。 输出:
Entities
A 1
B 1
C 2
D 1
E 2
F 1