如何使用Python将列值转换为Martix

如何使用Python将列值转换为Martix,python,pandas,numpy,Python,Pandas,Numpy,Ask is-关于将列值转换为矩阵格式的任何建议,如下所示: 您可以从numpy中选中add.outer 您可以从numpy中选中add.outer 您可以仅使用numpy来执行此操作 您可以仅使用numpy来执行此操作 非熊猫: items = ['A', 'B','C','D','E'] # Make combinations pairs = [f"{colA[i]}{colA[j]}" for i in range(len(items)) for j in range

Ask is-关于将列值转换为矩阵格式的任何建议,如下所示:

您可以从numpy中选中add.outer

您可以从numpy中选中add.outer


您可以仅使用numpy来执行此操作


您可以仅使用numpy来执行此操作

非熊猫:

items = ['A', 'B','C','D','E']

# Make combinations
pairs = [f"{colA[i]}{colA[j]}" for i in range(len(items)) for j in range(len(items))]

# Find max character count per combo
max_sz = max(map(len, pairs))

# Set initial row to items list
output = [[" "] + items]

# Append additional rows based on starting character
for c in items:
    tmp = [c] + [p for p in pairs if str(p).startswith(c)]
    output.append(tmp)

# Format with specified padding from max_sz
final = ""
for ln in output:
    final += " ".join([f"{i:>{max_sz}}" for i in ln]) + "\n"

print(final)
输出:

    A  B  C  D  E
 A AA AB AC AD AE
 B BA BB BC BD BE
 C CA CB CC CD CE
 D DA DB DC DD DE
 E EA EB EC ED EE
非熊猫:

items = ['A', 'B','C','D','E']

# Make combinations
pairs = [f"{colA[i]}{colA[j]}" for i in range(len(items)) for j in range(len(items))]

# Find max character count per combo
max_sz = max(map(len, pairs))

# Set initial row to items list
output = [[" "] + items]

# Append additional rows based on starting character
for c in items:
    tmp = [c] + [p for p in pairs if str(p).startswith(c)]
    output.append(tmp)

# Format with specified padding from max_sz
final = ""
for ln in output:
    final += " ".join([f"{i:>{max_sz}}" for i in ln]) + "\n"

print(final)
输出:

    A  B  C  D  E
 A AA AB AC AD AE
 B BA BB BC BD BE
 C CA CB CC CD CE
 D DA DB DC DD DE
 E EA EB EC ED EE

简单的解决方案我认为:

import numpy as np
m = np.repeat(list("ABCDE"), 5).reshape(5,5)
output = np.char.add(m, m.T)

简单的解决方案我认为:

import numpy as np
m = np.repeat(list("ABCDE"), 5).reshape(5,5)
output = np.char.add(m, m.T)

您的数据格式是什么?您的数据格式是什么?您没有定义df heredf可以定义为--lst=[A,B,C,D,E]df=pd.DataFramelst,columns=['col']您没有定义df heredf可以定义为--lst=[A,B,C,D,E]df=pd.DataFramelst,columns=['col']