gpt4 book ai didi

matrix - pandas - 针对所有其他行将函数应用于当前行

转载 作者:行者123 更新时间:2023-12-04 18:09:49 25 4
gpt4 key购买 nike

我正在利用 Pandas 创建一个如下所示的数据框:

ratings = pandas.DataFrame({
'article_a':[1,1,0,0],
'article_b':[1,0,0,0],
'article_c':[1,0,0,0],
'article_d':[0,0,0,1],
'article_e':[0,0,0,1]
},index=['Alice','Bob','Carol','Dave'])

我想根据这个输入计算另一个矩阵,它将每一行与所有其他行进行比较。例如,让我们假设计算是一个函数来查找交集的长度,我想要一个带有 len(intersection(Alice,Bob)) 的输出 DataFrame , len(intersection(Alice,Carol)) , len(intersection(Alice,Dave))在第一行中,每一行都遵循该格式与其他行。使用此示例输入,输出矩阵将为 4x3:
len(intersection(Alice,Bob)),len(intersection(Alice,Carol)),len(intersection(Alice,Dave))
len(intersection(Bob,Alice)),len(intersection(Bob,Carol)),len(intersection(Bob,Dave))
len(intersection(Carol,Alice)),len(intersection(Carol,Bob)),len(intersection(Carol,Dave))
len(intersection(Dave,Alice)),len(intersection(Dave,Bob)),len(intersection(Dave,Carol))

在 Pandas 中是否有这种基于函数的计算的命名方法?实现这一目标的最有效方法是什么?

最佳答案

我不知道命名方法,但我有一个单行。

In [21]: ratings.apply(lambda row: ratings.apply(
... lambda x: np.equal(row, x), 1).sum(1), 1)
Out[21]:
Alice Bob Carol Dave
Alice 5 3 2 0
Bob 3 5 4 2
Carol 2 4 5 3
Dave 0 2 3 5

关于matrix - pandas - 针对所有其他行将函数应用于当前行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16924421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com