在python中获取excel表的交叉概率

Posted

技术标签:

【中文标题】在python中获取excel表的交叉概率【英文标题】:Get crossed probability of an exel table in python 【发布时间】:2018-02-06 15:42:30 【问题描述】:

我有一个 Excel 表格 (200x780)。行是飞机上可用的选项,列是序列号。内容是10,取决于飞机是否有选项。

矩阵:

我想要一个表格,其中选项为行和列,包含两个选项一起出现的概率。像这样的东西,矩阵概率:

我使用pandas.read_excel 读取文件,并考虑将每一行与其他行相乘,但这会花费很多时间。有没有我没发现的 panda 模块可以更轻松地做到这一点?

【问题讨论】:

请提供适当的数据集(或部分)以及您想要的输出。 我不明白除了图片我还能提供关于数据集的更多信息吗? 包括至少 10rowsX10 列作为输入以及相同的所需输出。 欢迎来到 ***。请花时间阅读how to provide a great pandas example 上的这篇文章以及如何提供minimal, complete, and verifiable example 并相应地修改您的问题。 how to ask a good question 上的这些提示也可能有用。 Don't post images of code (or links to them) 【参考方案1】:

您可以在 Excel 中非常轻松地做到这一点。

如果Data 表示 200 行乘 780 列的输入数据,则数组公式

=MMULT(Data,TRANSPOSE(Data))/780

为您提供一个 200 行乘 200 列的值矩阵,其中第 (i,j) 个元素(第 i 行和第 j 列)是从输入 Data 的第 i 行和第 j 行获得的.

选择要显示输出的 200*200 单元格范围,在编辑栏中输入公式并同时按下 Ctrl、Shift 和 Enter 键进行提交。您可以将公式中的Data 替换为B2:ADA201 等范围。

【讨论】:

问题是我需要使用Python,这是必需的。但我正在努力更好地重新提出问题。 如果你有一个可用的矩阵乘法库,那么你可以使用它:将你的数据矩阵乘以其转置得到一个 200*200 的矩阵,然后将每个元素除以 780。 我尝试使用 'df.as_matrix' ,然后使用 'df2 = df1.transpose' ,但是当我尝试将 df1 和 df2 相乘时,出现错误:'with block values unsupported operand type (s) for *: 'long' 和 'instancemethod' 抱歉,我对 Python 或您尝试使用的功能一无所知,无法提供进一步帮助。但是,从数学角度来看,矩阵乘法适合您尝试做的事情。矩阵乘法不同于普通乘法,因此您可能需要寻找合适的矩阵乘法方法。

以上是关于在python中获取excel表的交叉概率的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 如何获取 Excel 中工作表的名称。

vba excel怎么获取指定工作表的行数、列数

应用分层10折交叉验证时如何在python中获取所有混淆矩阵的聚合

如何在python中从头开始获取kfold拆分以进行交叉验证?

python处理excel完整版

python处理excel完整版