Python 如何将列表转换为方阵
我想使用python将项目列表转换为方形矩阵格式。 我试着用熊猫做桌子,但没用 这是我的代码,输入是一个两列csv文件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
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
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