Python 如何将列表转换为方阵

Python 如何将列表转换为方阵,python,pandas,Python,Pandas,我想使用python将项目列表转换为方形矩阵格式。 我试着用熊猫做桌子,但没用 这是我的代码,输入是一个两列csv文件 with open(path_to_file,"r") as f: reader = csv.reader(f,delimiter = ',') data = list(reader) row_count=len(data) print(row_count - 1) df = pd.read_csv(path_to_file) group

我想使用python将项目列表转换为方形矩阵格式。 我试着用熊猫做桌子,但没用

这是我的代码,输入是一个两列csv文件

with open(path_to_file,"r") as f:
    reader = csv.reader(f,delimiter = ',')
    data = list(reader)
    row_count=len(data)
    print(row_count - 1)


df = pd.read_csv(path_to_file)


groups = df.groupby(['transmitter chan', 'receiver chan'])
max_for_AS = defaultdict(int)
df = df.assign(ID = [0 + i for i in xrange(len(df))])

print(df)

for g in groups:
    transmitter, count = g[0][0], len(g[1])
    max_for_AS[ transmitter ] = max( max_for_AS[transmitter], count )

for g in groups:
    transmitter, receiver, count = g[0][0], g[0][1], len(g[1])
    if count == max_for_AS[ transmitter ]:
    dataFinal = "{} , {} , {}".format(transmitter, receiver, count )
        print( dataFinal )
数据:

我认为你需要:

df = pd.read_csv(path_to_file)

但是如果
V1
V2
中的重复项需要聚合它们:

df1 = df.pivot_table(index='V1',columns='V2',values='count', fill_value=0)


由于不清楚您想要实现什么,我将以一个假设来接近这个答案

我假设您有一个
数据帧
。如果这是真的,要使用
numpy
获得它的转置,您可能需要

  • dataframe
    (df)转换为
    numpy-ndarray
    如下:
    df=df.values
  • 使用步骤1的结果中的
    numpy.transpose
    查找转置
  • 编辑:


    更好的方法。您也可以执行
    df.transpose()

    请发布您的数据,而不是数据的图片。另外,请询问到目前为止您尝试了哪些代码。这些是numpy数组吗?熊猫数据帧?你能发布你尝试过的代码吗?小建议-谢谢你的建议。谢谢你的建议,我现在就试试。试试
    df.transpose
    df1 = df.pivot(index='V1',columns='V2',values='count').fillna(0).astype(int)
    
    df1 = df.set_index(['V1','V2'])['count'].unstack(fill_value=0)
    
    df1 = df.pivot_table(index='V1',columns='V2',values='count', fill_value=0)
    
    df1 = df.groupby(['V1','V2'])['count'].mean().unstack(fill_value=0)
    
    #for change ordering add reindex
    df1 = df1.reindex(index=df.V1.unique(), columns=df.V2.unique())
    print (df1)
    V2  R  T  B  O  M  K  I  Z
    V1                        
    A   1  0  0  7  0  0  0  0
    Z   0  4  0  0  0  0  0  0
    E   0  0  9  0  0  0  0  0
    R   0  0  0  8  0  0  0  0
    T   0  0  0  0  7  0  0  2
    Y   0  0  8  0  0  5  0  0
    B   0  0  0  0  0  0  6  0