python - 从矩阵数据框中提取组合列表及其计数值?

标签 python python-2.7 pandas

我有以下矩阵:

import pandas as pd

df_test = pd.DataFrame({'TFD' : ['AA', 'SL', 'BB', 'D0', 'Dk', 'FF'],
                    'Snack' : ['1', '0', '1', '1', '0', '0'],
                    'Trans' : ['1', '1', '1', '0', '0', '1'],
                    'Dop' : ['1', '0', '1', '0', '1', '1']}).set_index('TFD')
df_test = df_test.astype(int)
matrix = df_test.T.dot(df_test)
print matrix
=>>>
           Dop  Snack  Trans
    Dop      4      2      3
    Snack    2      3      2
    Trans    3      2      4

​我想要得到什么:

Dop-Snack      2     
Snack-Trans    2      
Trans-Dop      3    

提前致谢!

最佳答案

假设对的顺序没有特殊要求:

import itertools
for c, r in itertools.combinations(matrix.columns, 2):
    print("{}-{}\t{}".format(c, r, matrix.loc[c, r]))

# Dop-Snack     2
# Dop-Trans     3
# Snack-Trans   2

https://docs.python.org/2/library/itertools.html#itertools.combinations

关于python - 从矩阵数据框中提取组合列表及其计数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43407379/

相关文章:

python - 当我将变量写入文本文件时,为什么会得到 'none'

python - django 两个外键到同一模型 - 管理错误

python - 尝试创建Python服务器

c++ - 如何使用 Boost::Python 打印到 Python 终端

python - 在 'df.size()' 函数后操作新列?

python - 为什么在设置索引更快时使用 reset_index(drop=True)?

python - Pandas ,选择一组的第一个观察并排序

python - 并行化以在 python 中添加计数器

python - comtypes 内部方法在 LP_BSTR 上失败

python - 没有日期的 pandas.read_csv parse_dates