【发布时间】:2020-04-08 07:44:00
【问题描述】:
我知道这不是一个人应该在这里做的事情,尽管我不知道我该怎么问这个问题。
data_train = pd.DataFrame({"buying": [0,1,0,1,0,0,0], "maint":[0,1,0,1,0,0,0], "doors": [0,1,0,1,0,0,0],
"persons": [0,1,0,1,0,0,0], "lug_boot":[0,1,0,1,0,0,0], "safety": [0,1,0,1,0,0,0],
"rating" : [1,1,2,1,3,4,5] })
data_train = data_train.groupby(["buying", "maint", "doors", "persons", "lug_boot", "safety"]) \
.agg({"buying": "count", "maint": "nunique"})#.query("buying>1")["maint"].sum()
我的目标是计算有多少行具有相同的第一个预测变量(购买、维护等),但评级不同。
我的尝试是整理第一列,然后计算我得到的不同评分的数量,这会很棒。
一个重要的假设是,如果两行相同,则它们已被预先删除。因此可以找到评级不同的行,但没有相同的行。
在我的示例中,第 1 行和第 3 行是相同的,因此删除了一个并且没有问题。但是,对于其他人,它们的评分不同,所以有一个问题,我应该得到 5 作为回报,因为有 5 个相同的预测变量行,它们的评分不同。
可以理解吗?
【问题讨论】:
-
行
0,2和3具有相同的第一列,但不同的最后一列。所以 3 行和结果 3? -
你是对的^^',好的答案已经更正了。
-
您能提供更多上下文吗?我的意思是,假设在最后一列中,值 2 在“A”组下出现两次。你想怎么算。一点也不,有1?我不确定这个问题是否真的很好,而且你的示例集似乎很小。 “B”组呢?它也可以贡献 1 ...
-
@Quickbeam2k1 我添加了几行。我的要求现在应该更明白了:) 我认为这个例子很好。您能否编辑您的答案以将 x2 作为行间相似性的一个因素?
-
不,它不应该给 4。或者如果是这样,我不明白逻辑
标签: python pandas dataframe pandas-groupby